在命名元素时,XAML中x:前缀的用途是什么?

时间:2011-10-13 13:52:58

标签: silverlight xaml

我注意到在xaml中命名元素时,我们在命名元素时有两个选项。

<Textbox Name="MyTextBox" />

<Textbox x:Name="MyOtherTextBox" />

我已经看到在各种示例中都使用过,并且想知道哪个最好,所以我可以在我的应用程序中使用它。这两者有什么区别?

3 个答案:

答案 0 :(得分:5)

TextBox之类的元素具有Name属性时,使用Namex:Name之间没有区别。

但是,并非所有可以在Xaml中出现的类都具有Name属性,因此尝试在此类元素上使用Name将导致错误。您可以使用x:Name。当此类元素具有x:Name时,通常可以使用包含FindName的{​​{1}}方法找到它。

另请参阅: - Is there any difference in x:name and name for controls in xaml file?

答案 1 :(得分:1)

你可以说它是确保一致性的命名约定,但它也允许轻松区分XML属性,因为你知道有问题的项是在文件后面的某些代码中声明和实例化或使用的。

查看微软的here(基于WPF的背景)和here的Silverlight答案。

答案 2 :(得分:1)

它指的是namespace。在下面的代码段中,它指的是“xmlns:x”。 “x:名称”和“名称”是相同的。

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