WPF中数据模板中的x:Key、x:Name和x:UID之间有什么区别?

WPF中数据模板中的x:Key、x:Name和x:UID之间有什么区别?,wpf,xaml,key,difference,uid,Wpf,Xaml,Key,Difference,Uid,我正在尝试在WPF中创建动态选项卡,并尝试编写一个只应用于某些选项卡项的内容模板。我希望能够为内容模板创建一个标识符,这样我就可以在代码隐藏中引用它,并且可以有选择地将它仅应用于单个TabControl中的一些选项卡。然而,我对这三种不同的xaml标识符感到困惑。区别是什么?对于我来说,哪一个最合适?x:'指定了名称空间,在您的情况下,您很可能会看到在Window.Xaml文件顶部声明的别名。x:Key、x:Name等都是该名称空间中的指令 相反,不带x:的“Name”属性是FrameworkE

我正在尝试在WPF中创建动态选项卡,并尝试编写一个只应用于某些选项卡项的内容模板。我希望能够为内容模板创建一个标识符,这样我就可以在代码隐藏中引用它,并且可以有选择地将它仅应用于单个TabControl中的一些选项卡。然而,我对这三种不同的xaml标识符感到困惑。区别是什么?对于我来说,哪一个最合适?

x:'指定了名称空间,在您的情况下,您很可能会看到在Window.Xaml文件顶部声明的别名。x:Key、x:Name等都是该名称空间中的指令

相反,不带x:的“Name”属性是FrameworkElement类中声明的依赖项属性

x:钥匙

唯一标识在XAML定义的字典中创建和引用的元素。向XAML对象元素添加x:Key值是在资源字典(例如WPF ResourceDictionary)中标识资源的最常用方法

x:姓名

唯一标识XAML命名空间中XAML定义的元素。当框架提供API或实现在运行时访问XAML创建的对象图的行为时,XAML名称范围及其唯一性模型可以应用于实例化对象

x:Uid

为标记元素提供唯一标识符。在许多场景中,XAML本地化过程和工具使用此唯一标识符

注释

我只见过x:Uid,当一个应用程序必须使用资源字典支持不同的语言时

对于其他两个x:Key和x:Name,基本的经验法则是对框架元素使用x:Name,对样式、模板等使用x:Key。因此,对于您的问题,如果您正在命名模板本身,那么您将使用x:Key指令。模板中声明的控件将使用x:Name指令


所有Xaml指令的完整列表见

如果要将模板应用于页面中的所有选项卡,可以使用x:Type,但如果要将其应用于少数选项卡而不是所有选项卡,则可以使用x:Key

通常,当您想将x:Key用作xaml文件中的静态资源时,您将使用它。当您希望在代码中引用控件或模板时,将为其提供x:Name。我从未使用过X:Uid,但MSDN是这么说的

使用x:Uid标识XAML中的对象元素。通常是这样 对象元素是控件类或其他元素的实例 显示在UI中的。字符串之间的关系 在x:Uid中使用,并且在资源文件中使用的字符串是 资源文件字符串是x:Uid,后跟一个点。然后 正在处理的元素的特定属性的名称 本地化的