有时似乎名称和 x:名称属性可以互换。我们可以在XAML中引用Framework元素的名称和 x:Name 。但是在 x:key 的情况下,WPF不提供“密钥”关键字,例如名称。 名称和 x:名称都是出于同样的目的。无需输入 x:即可使用名称。为什么我们无法在XAML中使用键?
答案 0 :(得分:6)
实际上有一个Name
property on FrameworkElemnet
。 x:Name
Directive实际上将映射到Name
属性,因为RuntimeNamePropertyAttribute
导致解析器执行映射。这些实际上不是100%可互换的 - 它更像是单向映射,解析器设置FrameworkElement.Name
属性以匹配x:Name
中指定的值。
“Key”不存在此类属性或属性,因此x:Key
指令无法以相同方式映射到属性。
答案 1 :(得分:0)
如果你谈论Xaml,那么只有x:Name。 WPF框架可以通过使用类的RuntimeNamePropertyAttribute
将其属性之一映射到XAML的x:Name,该类将属性之一分配给Xaml的x:Name
。因此,设置x:Name
相当于设置Name
。
x:Key
是资源的Xaml
密钥。它用于唯一标识ResourceDictionary
。