gpt4 book ai didi

.net - 在WPF中,x :Name and Name attributes?有什么区别

转载 作者:行者123 更新时间:2023-12-03 03:54:17 24 4
gpt4 key购买 nike

有时,Namex:Name 属性似乎是可以互换的。

那么,它们之间的明确区别是什么,什么时候更适合使用其中一种?

以错误的方式使用它们是否会对性能或内存产生影响?

最佳答案

XAML 中实际上只有一个名称,即 x:Name。框架(例如 WPF)可以选择将其属性之一映射到 XAML 的 x:Name,方法是在类上使用 RuntimeNamePropertyAttribute,将类属性之一指定为映射到XAML 的 x:Name 属性。

这样做的原因是为了允许在运行时已经具有“名称”概念的框架,例如 WPF。例如,在 WPF 中,FrameworkElement 引入了一个 Name 属性。

一般来说,类不需要存储 x:Name 的名称即可使用。所有 x:Name 意味着 XAML 生成一个字段来存储类背后代码中的值。运行时对该映射执行的操作取决于框架。

那么,为什么有两种方法可以做同样的事情呢?简单的答案是因为有两个概念映射到一个属性。 WPF 希望在运行时保留元素的名称(可以通过 Bind 等使用),而 XAML 需要知道您希望通过类背后代码中的字段访问哪些元素。 WPF 通过将 Name 属性标记为 x:Name 的别名,将这两者联系在一起。

将来,XAML 将对 x:Name 有更多用途,例如允许您通过名称引用其他对象来设置属性,但在 3.5 及之前的版本中,它仅用于创建字段。

是否应该使用其中之一实际上是一个风格问题,而不是技术问题。我会将其留给其他人推荐。

另请参阅AutomationProperties.Name VS x:Name , AutomationProperties.Name 由辅助工具和一些测试工具使用。

关于.net - 在WPF中,x :Name and Name attributes?有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/589874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com