我正在尝试在 WPF 中创建动态选项卡,并且正在尝试编写一个仅适用于某些选项卡项目的内容模板。我希望能够为内容模板创建一个标识符,以便我可以在后面的代码中引用它,这样我就可以有选择地将它应用于单个 TabControl 中的某些选项卡。但是,我对这三个不同的 xaml 标识符感到困惑。有什么区别,哪一种最适合我的目的?
'x:' 指定名称空间,在您的情况下最有可能是“http://schemas.microsoft.com/winfx/2006/xaml http://schemas.microsoft.com/winfx/2006/xaml" 您将看到在 Window.Xaml 文件顶部声明的别名。x:Key、x:Name 等都是该命名空间中的指令。
相反,“Name”属性(不带 x:)是在 FrameworkElement 类中声明的依赖属性。
x:Key
唯一标识在 XAML 定义的字典中创建和引用的元素。将 x:Key 值添加到 XAML 对象元素是在资源字典(例如 WPF ResourceDictionary)中标识资源的最常见方法。
x:Name
唯一标识 XAML 名称范围中 XAML 定义的元素。当框架提供 API 或实现在运行时访问 XAML 创建的对象图的行为时,XAML 名称范围及其唯一性模型可以应用于实例化对象。
x:Uid
为标记元素提供唯一标识符。在许多情况下,XAML 本地化进程和工具都会使用此唯一标识符。
Notes
我只见过x:Uid当应用程序必须通过资源字典支持不同语言时。
对于其他两个(x:Key 和 x:Name),基本经验法则是使用x:Name对于框架元素和x:Key用于样式、模板等。因此,对于您的问题,如果您要命名模板本身,您将使用x:Key指示。模板内声明的控件将使用x:Name指示。
所有 Xaml 指令的完整列表位于Xaml 命名空间 http://msdn.microsoft.com/en-us/library/ms753327%28v=vs.110%29.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)