2011-10-13 39 views
3

我注意到,在命名XAML元素时,我们有两种选择命名元素时。命名元素时,XAML中x:前缀的用途是什么?

<Textbox Name="MyTextBox" /> 

<Textbox x:Name="MyOtherTextBox" /> 

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

回答

5

当像TextBox一个元件具有Name属性则存在使用Namex:Name之间没有差异。

但是并不是所有可以出现在Xaml中的类都具有Name属性,所以试图在这样的元素上使用Name将导致错误。但您可以使用x:Name。当这种元件具有x:Name它通常可以与含FrameworkElementFindName方法被发现。

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

1

你可以说,这是一个命名约定,以确保相合,而且它可以轻松地分化XML属性的,你知道,有问题的项目申报和实例化或隐藏文件中的一些代码中使用。

看看微软的here采取它(基于WPF的背景)和here为Silverlight的答案。

1

它是指namespace。在下面的代码片段中,它指的是“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" 
    ...> 
相关问题