这是WPF的v.basic问题。
乍一看,似乎WPF区分大小写。但如果必须如此,那么width =“auto”& width =“Auto”都可以正常工作吗?另一方面,如果不区分大小写,为什么控件不接受'width'作为其属性?您只能使用“宽度”(大写W)来定义控件的宽度。
答案 0 :(得分:5)
一半是真的。
XAML通常说区分大小写。出于解决支持类型的目的,WPF XAML区分大小写与CLR区分大小写的规则相同。在通过名称与程序集中的基础类型或类型成员进行比较时,必须使用敏感外壳指定对象元素,属性元素和属性名称。 XAML语言关键字和基元也区分大小写。值并不总是区分大小写。值的区分大小写取决于与获取值的属性关联的类型转换器行为,或属性值类型。例如,采用Boolean类型的属性可以采用true或True作为等效值,但仅仅因为字符串到布尔值的本机WPF XAML解析器类型转换已经允许将它们作为等价物。
一般情况下,XAML区分大小写,但属性值并不总是因为这取决于属性转换器,所以在大多数情况下,它的工作方式是Auto
与auto
相同,尽管一些特殊情况,属性转换器可能无法使用不区分大小写来处理它们
注意:我们在这里谈的是values
财产,而不是财产names
答案 1 :(得分:1)
来自FrameworkElement.Width的文件(强调我的):
除了可接受的Double值之外,此属性也可以是Double.NaN。这是您指定自动调整大小行为的方式。 在XAML中,您将值设置为字符串“Auto”(不区分大小写)以启用自动调整大小行为。
因此,Auto
(不区分大小写)只是将属性设置为Double.NaN
的XAML简写。
答案 2 :(得分:0)
从MSDN: FrameworkElement.Width Property开始:
在XAML中,您将值设置为字符串“Auto”(不区分大小写)以启用自动调整大小的行为。