x:Key和x:WPF中的名称有什么区别?
答案 0 :(得分:12)
x:Key仅在资源字典中有效并添加到字典中,x:Name在本地使用,表示类中的变量。
答案 1 :(得分: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 -->
答案 2 :(得分:1)
是的,您可以使用x:Key为ResourceDictionary中的资源分配密钥,可以在元素的资源部分或特定的ResourceDictionay中本地分配。然后,此密钥用于通过{DynamicResource XXX}或{StaticResource XXX}查找资源。
x:Name用于为xaml中的控件指定名称。然后,可以使用通常的语法或在文件中使用ElementName绑定来访问代码隐藏文件中的元素。