2010-07-09 111 views

回答

12

x:密鑰只在資源字典中有效,並被添加到字典中,x:名稱在本地使用並表示類中的變量。

8

x:Name用於指定UI元素(例如控件,面板等),而x:Key用於標識ResourceDictionary內的資源(可以是更多或更少)。

這意味着你不能使用x:Name值參考的東西在資源字典:

<Grid> 
    <Grid.Resources> 
     <Style x:Name="StyleName" x:Key="StyleKey" /> 
    </Grid.Resources> 
    <Button Style="{StaticResource StyleName}" /> <!-- Will not work--> 
    <Button Style="{StaticResource StyleKey}" /> <!-- Will work --> 
</Grid> 

您還會注意到,這不是一個資源字典中的元素不能有x:Key屬性:

<TextBox x:Key="TextBoxKey" /> <!-- Will not compile --> 
1

是的,您可以使用x:Key爲ResourceDictionary中的資源分配一個鍵,或者在資源部分中爲某個元素或特定的ResourceDictionay分配本地資源。然後使用此密鑰通過{DynamicResource XXX}或{StaticResource XXX}查找資源。

x:名稱用於爲xaml中的控件指定名稱。然後,可以使用常用語法或使用文件內的ElementName綁定來訪問代碼隱藏文件中的元素。