WPF的一个小问题[英] One small question for WPF

本文是小编为大家收集整理的关于WPF的一个小问题的处理方法,想解了WPF的一个小问题的问题怎么解决?WPF的一个小问题问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

您好,WPF 专家:

<文本框 x:name="textBox1">一些文本</文本框>
这里的"x:"是什么意思,为什么我们需要它?

谢谢!

推荐答案

来自 文档[^]

为处理对象元素后存在于运行时代码中的实例指定运行时对象名称

参见:
http://social.msdn.microsoft.com/论坛/da-DK/wpf/thread/216553bf-9be2-4d0a-acc1-b38af8ef948e[^]

引用:
如果是"Key"而不是"x:Key",这将要求"Key"是
作为资源添加的"元素",根据 XAML 甚至 XML 的语法规则.

在 WPF 中,这意味着每个对象都作为资源添加
需要公开一个名为"Key"的可写 DependencyProperty.

这将排除所有不是 DependencyObjects 的类型 - 例如字符串或 URI 或
ViewModels 实例 - 以及所有没有名为"Key"的 DP 的实例,
所以只是所有常用作为资源的对象!

使用 "x:Key" 指令的实现,键不需要是
的真正属性添加的元素,您可以将其视为元素的"附加"属性(只是寓言
在技​​术上不是 AttachedProperty).
请注意,如果一个类型具有由 DictionaryKeyPropertyAttribute 标记的属性,那么您
实际上不需要"x:Key",而是可以使用该类型的"Key"属性(可能有不同的名称)——就像你建议的那样.

请注意,"x:Name"和"Name"的关系与"x:Key"和"Key"的关系大致相同.
如果您使用"Name",则该元素需要公开一个名为"Name"的可写 DP,
与"Key"相反,最常见的情况是-因为"Name"是
的DP每个 FrameworkElement 和 FrameworkContentElement,因此 >90% 的元素用于 XAML,
这就是为什么 Name 和 x:Name 经常作为同义词出现并且可以互换
(它们不完全)但 "x:Key" 和 "Key" 没有.


这同样适用于 XAML 中的所有 x: 属性

本文地址:https://www.itbaoku.cn/post/1356097.html

相关标签/搜索