在 WPF 应用程序中,如果在 XAML 中声明了 ContentControl,
<Grid Name="MyGrid">
<ContentControl Name="MyContentControl" />
</Grid>
然后我可以使用
FindName
在代码中轻松引用它:ContentControl cc = FindName("MyContentControl") as ContentControl;
cc.Content = ...
但是如果我在代码中添加 ContentControl :
ContentControl contentcntr = new ContentControl();
contentcntr.Name = "MyContentControl";
this.MyGrid.Children.Add(contentcntr);
FindName
没有找到它。第二种情况有什么问题?有什么不同?
最佳答案
XAML 解析器会自动在名称范围中注册名称,如果您创建这样的元素,您可能需要使用 RegisterName
自己完成。 (还有一个 accessor on FrameworkElement
。)
关于c# - 如果在代码中添加了元素,则 "FindName"不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10260122/