wpf - 在 WPF 中使用 FindName() 找不到动态生成的控件

标签 wpf label dynamically-generated findname

我需要动态生成尽可能多的标签,并在需要时访问其中的每一个标签。但 FindName() 还没有工作...

这是我所做的一个简单示例

我有一个自定义编写的类,继承自 Label 类,名为 myLabel。 我在我的 WPF 项目上放置了一个按钮。通过单击它,将动态创建 myLabel 类的实例并将其添加到网格 (myGrid) 中,如下所示:

myLabel LBL = new myLabel();
LBL.Height = 30;
LBL.Name = "MyLabel1";
LBL.Content = "I am a label.";
myGrid.Children.Add(LBL);

还有另一个名为“更改颜色”的按钮,它应该找到之前创建的标签并更改其前景色。这是该按钮的单击事件中的代码:

Label Thelabel = (Label)myGrid.FindName("MyLabel1");
Thelabel.Foreground = Brushes.Azure;

问题是 FindName() 从未找到任何内容并且始终为 null ! 我该如何解决这个问题?

最佳答案

名称范围可能存在问题,导致“FindName”返回 null。

从父/祖先开始查找特定命名元素的不同方法的解释可以在这篇文章中找到:How can I find WPF controls by name or type?

尝试一下,看看它是否适合您。

关于wpf - 在 WPF 中使用 FindName() 找不到动态生成的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13701719/

相关文章:

ios - 在 iOS 中的文本之间显示图像

matplotlib - 具有相同标签的不同散点图标记

选中单选按钮标签的 CSS

android - 创建动态 R.drawable 源和 ImageView

java - 仅当方法被重写时,通过扩展类调用方法才有效

c# - WPF 将文件从 Windows 资源管理器拖放到 TreeView

c# - XAML 中图标格式的最佳实践(SVG、路径数据点、几何/XAML 或字体)

c# - 为什么图像大小是 NaN (wpf) 以及如何通过鼠标滚轮调整大小?

javascript - 动态加载 Div 元素并分配 ID

c# - WPF MVVM 触发代码基于 Tab SelectedValue,而不是 SelectedIndex