当在XAML中命名一个元素时,x:前缀的目的是什么?

4

我注意到在XAML中给元素命名时,有两种选项。

<Textbox Name="MyTextBox" />

或者

<Textbox x:Name="MyOtherTextBox" />

我曾在各种示例中看到这两者都被使用,想知道哪个更好,以便在我的应用程序中使用。它们之间有什么区别?

3个回答

6
当像 TextBox 这样的元素拥有一个 Name 属性时,使用 Namex:Name 没有区别。
然而,并非所有出现在 Xaml 中的类都有 Name 属性,因此在这些元素上尝试使用 Name 将导致错误。但是可以使用 x:Name。当这样的元素具有 x:Name 时,通常可以通过包含的 FrameworkElementFindName 方法找到它。
另请参见:- 在 Xaml 文件中控件的 x:name 和 name 有什么区别?

1

它指的是命名空间。在下面的代码片段中,它指的是“xmlns:x”。"x:Name"和"Name"是相同的。

<UserControl
    x:Class="MyNamespace.MyClass"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    ...>

1
你可以说这是一种命名约定,以确保一致性,但它也允许轻松区分XML属性,因为你知道所讨论的项在某个代码后台文件中被声明、实例化或使用。
请看这里获取微软(WPF背景)的解释,以及这里获取Silverlight的答案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接