2

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

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

4

4 回答 4

3

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

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

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

于 2013-08-29T09:26:26.217 回答
2

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

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

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

于 2013-08-29T09:09:14.987 回答
1

添加“名称”属性

微软文档:

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

于 2013-08-29T09:06:19.180 回答
0

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

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

Textbox tb = new TextBox();
tb.Name = "textBox1";
tb.Text = "Hello world";
someStackPanel.Children.Add(tb);
于 2013-08-29T09:10:00.567 回答