WPF纯粹是区分大小写的吗?宽度字段中的“自动”值区分大小写吗?

时间:2012-02-21 12:42:10

标签: wpf xaml width

这是WPF的v.basic问题。

乍一看,似乎WPF区分大小写。但如果必须如此,那么width =“auto”& width =“Auto”都可以正常工作吗?另一方面,如果不区分大小写,为什么控件不接受'width'作为其属性?您只能使用“宽度”(大写W)来定义控件的宽度。

Consolidated answer link

3 个答案:

答案 0 :(得分:5)

一半是真的。

来自官方XAML Overview page

  

XAML通常说区分大小写。出于解决支持类型的目的,WPF XAML区分大小写与CLR区分大小写的规则相同。在通过名称与程序集中的基础类型或类型成员进行比较时,必须使用敏感外壳指定对象元素,属性元素和属性名称。 XAML语言关键字和基元也区分大小写。值并不总是区分大小写。值的区分大小写取决于与获取值的属性关联的类型转换器行为,或属性值类型。例如,采用Boolean类型的属性可以采用true或True作为等效值,但仅仅因为字符串到布尔值的本机WPF XAML解析器类型转换已经允许将它们作为等价物。

一般情况下,XAML区分大小写,但属性值并不总是因为这取决于属性转换器,所以在大多数情况下,它的工作方式是Autoauto相同,尽管一些特殊情况,属性转换器可能无法使用不区分大小写来处理它们

注意:我们在这里谈的是values财产,而不是财产names

答案 1 :(得分:1)

来自FrameworkElement.Width的文件(强调我的):

  

除了可接受的Double值之外,此属性也可以是Double.NaN。这是您指定自动调整大小行为的方式。 在XAML中,您将值设置为字符串“Auto”(不区分大小写)以启用自动调整大小行为。

因此,Auto(不区分大小写)只是将属性设置为Double.NaN的XAML简写。

答案 2 :(得分:0)

MSDN: FrameworkElement.Width Property开始:

  

在XAML中,您将值设置为字符串“Auto”(不区分大小写)以启用自动调整大小的行为。