2012-02-21 40 views
1

这是WPF的v.basic问题。WPF是纯粹区分大小写的吗?宽度字段中的“自动”值是否区分大小写?

乍一看,WPF似乎区分大小写。但是,如果这是真的,那么怎么来宽=“自动”都可以正常工作?另一方面,如果不区分大小写,那么为什么控件不接受'宽度'作为它的属性?您只能使用“宽度”(大写W)来定义控件的宽度。

Consolidated answer link

+0

是的,它会,它是不区分大小写的,但为什么不尝试? – mtijn 2012-02-21 12:43:54

+0

我以为有人会提出更多的灯光。我只是试过它的工作,所以想知道它是真的还是在我的代码中做的更多。 – Rohit 2012-02-21 12:45:57

回答

5

一半是真的。

从官方XAML Overview page

XAML是一般来说区分大小写。为了解析支持类型,WPF XAML按照CLR区分大小写的相同规则区分大小写。对象元素,属性元素和属性名称必须全部通过使用敏感外壳进行指定时,通过名称与程序集中的基础类型或类型的成员进行比较。 XAML语言关键字和原语也区分大小写。值并不总是区分大小写。大小写的区分大小取决于与使用该值的属性或属性值类型关联的类型转换器行为。例如,采用布尔类型的属性可以采用true或True作为等价值,但仅仅是因为本地WPF XAML解析器将字符串转换为布尔型的类型转换已将这些转换为等价形式。

一般XAML是大小写敏感,但属性值不是一直以来依赖于财产转换器,因此在大多数情况下,它的工作,如其中Auto相同auto,虽然在一些特殊情况下的财产转换器可能无法与不区分大小写来处理它们

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

+0

这是我一直在寻找的......感谢Kypros。 – Rohit 2012-02-21 14:35:22

0

FrameworkElement.Width(重点煤矿)的文档:

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

所以,Auto(不区分大小写)仅仅是一个XAML简写属性设置为Double.NaN