添加到表单的控件没有名称

本文关键字:有名称 控件 表单 添加 | 更新日期: 2023-09-27 18:29:38

我完全不在WPF中。我刚刚打开了MS Visual Studio Express 2013预览版,我正在尝试做一些"Hello World!"应用程序。我注意到,当我向窗体添加控件时,例如TextBox,该控件没有名称分配。

这正常吗?如何从代码中更改其属性?

添加到表单的控件没有名称

在WPF中,控件几乎只需要提供一个名称,原因如下:

  • 开发人员希望在代码背后引用控件(使用MVVM时不赞成,但有时是必要的)
  • 开发人员何时将XAML传递给使用自动UI测试工具的测试团队
  • 当另一个控件上的Binding使用ElementName引用该控件上的属性时

如果它不是其中之一,那么实际上就没有必要命名您的控件。一旦您开始使用MVVM作为主要设计模式,您就会发现,您几乎不需要知道代码中控件的名称。开始习惯于更改XAML中的属性,而不是代码。

您应该使用Name属性并提供唯一标识符:

<TextBox Name="UniqueName">
  Value
</TextBox>

只有找到一种方法来实际定位控件而不首先使用名称,才能在代码中分配Name值——这有点冗长,而不是使用标记,除非你无论如何都是动态地将控件添加到窗口中,因此已经直接引用了元素。

添加"名称"属性

Msdn文件:

http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.name.aspx

该控件没有名称分配。这正常吗?如何从代码更改其属性

创建控件后,您可以访问它的所有属性,如

Textbox tb = new TextBox();
tb.Name = "textBox1";
tb.Text = "Hello world";
someStackPanel.Children.Add(tb);