无法在C#中动态创建UI元素

时间:2018-05-16 16:31:22

标签: c# wpf

我在for循环中创建了一些UI元素,并将其Name属性设置为name+i,其中i是循环计数器。稍后,如果我尝试按名称获取在for循环中创建的元素,则找不到UI元素。我做错了什么?
编辑:
好的,这是代码:

WrapPanel panel = new WrapPanel();
panel= (WrapPanel)FindName("panel");
Image img;

for(int i=0;i<5;i++){
    img=new Image();
    img.Name="name"+i;
    img.Source = new BitmapImage(new Uri("someimg.png", UriKind.Relative));
    panel.Children.Add(img);
}

//where img could not be found. However, at this point, all the images are present in panel.Children
img= (Image)FindName("name1");

编辑2:
好的,我解决了这个问题,我只需要使用RegisterName方法。谢谢大家...

1 个答案:

答案 0 :(得分:1)

我发现了问题所在。在将父项添加到父项后,我还必须使用RegisterName方法。