WPF 中的 x:key 关键字



有时 Name 和 x:Name 属性似乎是可以互换的。我们可以在 XAML 中引用框架元素的 Name 和 x:Name但在 x:key 的情况下,WPF 不提供"key"关键字,如 Name。Name x:Name 用于相同的目的。无需键入 x: 即可使用名称。为什么我们不能在 XAML 中使用这样的密钥

实际上FrameworkElemnet上有一个Name属性。 x:Name指令实际上将映射到 Name 属性,因为RuntimeNamePropertyAttribute会导致分析器执行映射。 这些实际上不是 100% 可互换的 - 它更像是单向映射,解析器将 FrameworkElement.Name 属性设置为与 x:Name 中指定的值匹配。

"Key"不存在这样的属性或属性,因此 x:Key 指令无法以相同的方式映射到属性。

如果你谈论Xaml,那么只有x:Name。WPF 框架可以使用类上的RuntimeNamePropertyAttribute将其属性之一映射到 XAML 的 x:Name,该类将其中一个属性分配给 Xaml x:Name。所以设置x:Name等同于设置Name

另一方面,x:Key是资源的关键Xaml。它用于唯一标识ResourceDictionary中的资源。

最新更新