01/10/2018, 15:05
Canvas control Findname return null
XAML
<Window x:Class="Ahihi.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Ahihi" Height="300" Width="300"
>
<Grid>
<Canvas Name="Mega"></Canvas>
</Grid>
</Window>
C# code
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
namespace Ahihi
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
Mega.Children.Add(new Border(){Name="linh"});
((Border)(Mega.FindName("linh"))).Background=Brushes.Red;
}
}
}
Em không hiểu tại sao mà đoạn code ((Border)(Mega.FindName("linh")))
nó return NULL? Em loay hoay mãi mà không được T_T. Mấy bác giúp em với!
Bài liên quan
Chẳng biết phải dịch như thế nào
Nếu element được thêm sau khi initialization thì phải gọi thêm method
RegisterName
Tham khảo đoạn code viết lại:
Thực sự thì không nên viết theo cách này. Bạn nên tìm cách tiếp cận khác.
VD
hoặc:
Em chỉ tò mò hôm bữa sao em dùng findname được mà hôm nay em lại không dùng được chứ nếu như thực sự cần viết 1 đoạn code có chức năng như trên thì em sẽ chọn cách của bác