在 WPF 中使用 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()永远不会找到任何东西,并且总是为空!我该如何解决这个问题?

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

可以在这篇文章中找到查找特定命名元素的不同方法的说明,从父元素/祖先开始:如何按名称或类型查找 WPF 控件?

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

相关内容

  • 没有找到相关文章

最新更新