x:Key和x之间的区别:名称

时间:2010-07-09 08:21:56

标签: wpf silverlight

x:Key和x:WPF中的名称有什么区别?

3 个答案:

答案 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绑定来访问代码隐藏文件中的元素。