2011-10-13 67 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" 
    ...> 
相關問題