WPF 中 DataTemplate 中的 x:Key、x:Name 和 x:UID 有什么区别?

2024-02-18

我正在尝试在 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(使用前将#替换为@)

WPF 中 DataTemplate 中的 x:Key、x:Name 和 x:UID 有什么区别? 的相关文章

  • WPF - 如何使用模板创建图像按钮

    我正在尝试创建一个包含 3 个图像的按钮 一个普通图像 一个按下图像和一个禁用图像 我将使用它们来创建向上 向下箭头按钮 我相信正确的方法是从Button并使用Template并设置触发器来更改图像 我有 3 个依赖属性 每个图像一个 图像
  • 何时在 UserControl 上使用模板化控件?

    我正在寻找一些有关如何在 WinRT 中创建自定义控件的教程 我有一个问题 假设我想创建一个包含一些内容的简单控件 例如左侧有图像 右侧有几个 TextBlock 的网格 我的意思是 一些简单的事情 比如
  • UserControl 不在 HitTestResult 中吗?

    我定义了一个用户控件
  • 何时使用 BlockingCollection 以及何时使用 ConcurrentBag 而不是 List

    The 为什么这个 Parallel ForEach 代码会冻结程序 问题的接受答案 https stackoverflow com a 8365614 2031316建议将列表用法替换为并发包 http msdn microsoft co
  • Windows Phone 8.1 XAML 应用程序显示奇怪的版本

    我已经为我现有的应用程序之一创建了 Windows Phone 8 1 XAML 版本 我将包版本设置为1 5 0 0 创建的文件名为SlovakApps WindowsPhone 1 5 0 1 AnyCPU bundle appxupl
  • WPF - 从 WPF 应用程序切换到 xbap

    我有一个可用的 WPF 应用程序 我希望看到它作为 xbap 运行 我需要在 WPF 应用程序中更改哪些内容才能使其作为 xbap 运行 当谈到可以以图形方式执行的操作时 两者之间的唯一区别是 XBAP 无法使用 BitmapEffects
  • 如何在vim中将菜单键(“应用程序键”)映射到Escape键?

    我认为使用菜单键退出 vim 的插入模式将是一件很棒的事情 使用 Super 键也很好 但我不确定是否可能 因为 Super 键是一个修饰符 无论如何 我找不到任何与此相关的内容 寻求您的帮助并提前致谢 我认为没有任何方法可以配置 Vim
  • 如何将 textblock.foreground 绑定到变量? (WPF C#)

    所以我希望改变我的程序 以便我可以运行一个函数来检查前景色是否应该是黑色或银色 我希望将不可 访问 的字段灰显 My form currently looks like 我希望将 无需维护 字段 灰显 但我在尝试在数据模板中定义字体前景的绑
  • WPF DatePicker 显示时间和日期

    我有一个DatePicker对象在一个DataGrid成功显示数据库或属性中的日期
  • 按名称查找控件的父级

    当在 xaml 代码中设置名称时 有没有办法通过名称找到 WPF 控件的父级 尝试这个 element VisualTreeHelper GetParent element as UIElement 在哪里 元素是 Children 您需要
  • python随机字典键,并访问它[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 import random Cards Spade 2 3 4 5 6 7 8 9 10 Jack Queen King
  • 使用 MahApps.Metro 时应用程序图标拉伸至标题栏高度

    使用 MahApps Metro 时如何防止应用程序图标拉伸到标题栏的高度 无论使用什么尺寸的图标 图标和标题栏边缘之间都没有空格 我也尝试过使用多尺寸图标 但这不起作用 这是一个开箱即用的示例 强烈启发自mahapps punker76
  • 当 Bool 变量变为 True 时更改标签

    我不太确定如何解释这一点 我将把代码放在伪代码中以便于阅读 我几乎想要一个标签在类的 bool 变量更改时更改其文本 我不确定我需要使用什么 因为我使用的是 WPF 并且该类不能只更改我不更改的标签你不觉得吗 我需要举办某种活动吗 或者 W
  • 当用户控件可见时将焦点设置到它

    I am showing a MessageBox and want the user to be able to copy the contents of the message using CTRL C The problem is t
  • 在 WPF 中创建复合位图图像

    我有三个位图图像 我想将它们拼接在一起以创建合成图像 要拼接在一起的三个图像按以下方式对齐 这些图像的类型为 System Windows Media Imaging BitmapImage 我看过以下内容solution https st
  • 防止 XAML/C# 中 ListView 的 Return(Enter)、向上和向下箭头键的默认行为 (Windows 10)

    当列表视图具有焦点时 按 Enter 键的默认行为是选择列表视图的第一个元素 向上和向下箭头键滚动列表视图 我试图阻止这种默认行为并连接我的自定义逻辑 我可以使用 KeyDown 为列表视图实现访问键 如下所示 代码隐藏方法 CoreWin
  • 是否可以更改 WPF 控件的父级

    是否可以更改 WPF 控件的父控件 这是一个例子 StackPanel堆栈1有Buttonbtn1 在里面 还有一个空的StackPanel堆栈2 我想以编程方式将 btn1 移动到 stack2 谢谢您的帮助 您可以通过以下方式执行此操作
  • 如何在 wpf 密码框设置一些默认文本? [复制]

    这个问题在这里已经有答案了 可能的重复 WPF 中的水印文本框 https stackoverflow com questions 833943 watermark textbox in wpf 我可以知道如何在 WPF 的密码框中放入一些
  • 如何为RenderTargetBitmap的输出设置透明度颜色?

    我正在尝试使用 RenderTargetBitmap 将具有透明背景的 Visual 对象保存到位图 public static RenderTargetBitmap RenderToBitmap this Visual Source in
  • 如何在 Xamarin.Forms 中强制使用浅色模式?

    我的应用程序的 UI 设计为在灯光模式下使用 但如果手机的默认主题是深色模式 我的应用程序也会切换到深色模式 并且 UI 看起来很垃圾 所以我想强制我的应用程序使用灯光模式 我怎样才能做到这一点 In my app xaml我使用的文件Us

随机推荐

  • 如何将数组转换为ARM模板中一个对象的属性?

    我正在寻找一种将数组 例如字符串 转换为一个对象的方法 其中属性是从数组值生成的 用例 我想生成一个tags基于资源名称列表的具有资源链接的对象 我需要这样做 以link App Service资源到一个Application Insigh
  • AWK 比较两个文件,如果匹配,则将新列从第二个文件添加到第一个文件

    我有问题 我想比较两个文件 第一个文件是参考 ABCA4 INHR AMT INHR BTK ONKO1 PAP ONKO2 第二个文件用于比较 3 1 2 T ENG1 ABCA4 ff 3 1 2 T ENG1 ABCA4 gg 5 1
  • HTML5 Canvas 和鼠标事件问题

    我正在尝试创建一个包含客户签名框的 HTML5 页面 这大部分用于平板电脑 这是通过 Canvas 元素和鼠标上的 JavaScript 事件来完成的 问题 1 Y 部分工作完美 但 X 部分仅在我将画布设置为 300 时才工作 如果宽度为
  • 使用 ANTLR 通过 Python 解析一些 Java 代码

    我想在 Python 中使用 ANTLR 构建一个 Java 解析器 我从 ANTLR 存储库下载了语法 Lexer https github com antlr grammars v4 blob master java java Java
  • XNA 中的四元数旋转

    我这样做对吗 显然不是因为否则我不会在这里发布问题 但我正在尝试围绕另一个模型对一个模型进行四元数旋转 假设我有一个具有向量 3 位置和浮动旋转角度的盒模型 我还有一个指向盒子模型的截头锥体模型 其位置可以说距盒子模型 50 个单位 平截头
  • EC2实例克隆

    是否可以克隆 EC2 实例数据以及全部数据 你可以做一个AMI http docs aws amazon com AWSEC2 latest UserGuide AMIs html现有实例 然后使用该实例启动其他实例AMI http doc
  • 在本地测试谷歌地图V3地理位置?

    我正在尝试在我的计算机上测试一些地理定位代码 但我什至无法运行这些示例 虽然它们从文档网站完美运行 但当我尝试从计算机打开 html 文件时 我得到一个空白页面 但我所做的就是尝试检测我的位置 这是代码
  • (新)收到GCM消息,但如何解析?

    我正在使用 新 GCM 它是 Google Play 服务的一部分 它不使用适用于 Android 和服务器的 jar Android 使用 Google Play apk 来注册 接收甚至发送消息 在服务器端 我们与 GCM 通信所需要做
  • 为什么选择 PRG 模式而不是其他模式?

    我需要防止为客户的网站重复提交表单 我们需要用户提供一些表单数据用于订单确认页面 我们对网络服务器使用负载平衡 方法 1 发布 重定向 获取 PRG pattern http en wikipedia org wiki Post Redir
  • 如何在 JavaScript 代码中获取数据属性的值?

    我有下一个html span span 是否可以获取以data 并将其用在JavaScript代码类似于下面的代码 现在我得到null结果 document getElementById the span addEventListener
  • 在 JAX-RS 资源中组合 @Context 和 @RolesAllowed?

    是否可以使用Context http docs oracle com javaee 6 api javax ws rs core Context html注释和允许的角色 https docs oracle com javaee 6 api
  • Valgrind 未显示错误使用 c_str() 的无效内存访问

    想象一下这样的代码 string f string r ab return r int main const char c f c str printf s n c return 0 这段代码可能会崩溃 对吧 因为那个字符串c指向被破坏 但
  • 将大型 NumPy 数组写入文件的有效方法

    我目前有一个在 PiCloud 上运行的项目 其中涉及 ODE 求解器的多次迭代 每次迭代都会生成一个约 30 行和 1500 列的 NumPy 数组 每次迭代都会附加到先前结果数组的底部 通常 我只是让函数返回这些相当大的数组 将它们保存
  • React Google Maps Api 在第一次渲染时不会渲染子元素

    我正在尝试在我的应用程序中使用 Google Maps Api 一切都很好 直到我想在地图的第一次渲染时显示标记 标记没有显示 但如果我在渲染完成后再添加一个标记 标记就会出现 所以问题是我想用已经存在的标记渲染地图 我不想等待选择某个位置
  • Excel 图表不应有尾随的空单元格占用轴上的空间

    想要在一系列数据上绘制图表 其长度可以根据用户输入而改变 因此 范围末尾的空单元格不应出现在图表上 并且轴根本不应具有这些值 Detail 复利计算器 用户可以进入投资期 如果图表正确显示 10 年 并且用户将期间更改为 5 年 那么图表应
  • 带有外键字段列表的 Django 表单

    我有以下模型 我正在尝试为其创建表单 class Letter models Model title models CharField max length 100 publish date models TimeField class L
  • J2Mod 基本主从问题

    我正在尝试使用 Modbus 从站和主站j2mod 它的版本是 1 0 6 所以与另一个程序兼容 对于我在网上找到的代码 我确实有一些一般性问题 我几乎没有找到任何有用的文档 所以我有点无能为力 TCP主控器 this addr InetA
  • iOS Swift:在收件箱电子邮件中打开邮件应用程序

    晚上 我试图通过按钮操作打开邮件应用程序的收件箱邮件 在网络上 我看到可以打开电子邮件编辑器对象的电子邮件应用程序 但我并不想创建新电子邮件 我只是希望用户检查电子邮件 有小费吗 我使用以下代码解决了 let mailURL URL str
  • 如何在自引用关联中强制执行外键约束?

    假设最简单的例子 var Person sequelize define Person name Sequelize STRING Person hasMany Person as Children foreignKeyConstraint
  • WPF 中 DataTemplate 中的 x:Key、x:Name 和 x:UID 有什么区别?

    我正在尝试在 WPF 中创建动态选项卡 并且正在尝试编写一个仅适用于某些选项卡项目的内容模板 我希望能够为内容模板创建一个标识符 以便我可以在后面的代码中引用它 这样我就可以有选择地将它应用于单个 TabControl 中的某些选项卡 但是