我正在尝试在WPF中创建动态选项卡,并且正在尝试编写仅适用于某些选项卡项目的内容模板。我希望能够为内容模板创建一个标识符,以便可以在后面的代码中引用它,以便可以有选择地将其仅应用于单个TabControl中的某些选项卡。但是,我对这三个不同的xaml标识符感到困惑。有什么区别,哪一个最适合我的目的?
请您参考如下方法:
“x:”指定 namespace ,在您的情况下,最有可能是“http://schemas.microsoft.com/winfx/2006/xaml”。您将在Window.Xaml文件的顶部看到声明的别名。 x:Key,x:Name等都是该命名空间中的所有指令。
相反,“名称”属性(不带x :)是在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 用于Framework元素,将 x:Key 用于样式,模板等。因此,对于您的问题,如果要命名模板本身,则可以使用 x:Key 指令。在模板中声明的控件将使用 x:Name 指令。
Xaml Namespace给出了所有Xaml指令的完整列表。