gpt4 book ai didi

c# - "FindName"如果在代码中添加元素则不起作用

转载 作者:行者123 更新时间:2023-11-30 14:00:38 25 4
gpt4 key购买 nike

在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com