<Button Name="MyButton" Content="Test" FontStyle="Italic" />
在上面的按钮XAML定义中,FontStyle
属性设置为Italic。当我点击=
符号时,设计师能以某种方式填充列表供我选择。这是如何实现的?
在回答之前,请考虑FontStyle
属性是否恰当,类型为FontStyle
(这是一个结构)。这不是枚举,对于VS在设计时列出来是微不足道的,那么如何选择显示的有效选项列表呢?还有一个完全独立的FontStyles
类,其中包含三个静态字段Italic
,Normal
和Oblique
,恰好是VS中提供的三个项目下面的清单。在FontStyle
结构体和FontStyles
类之间是否存在一些映射,因为我在对象浏览器和.NET Reflector中查看了很多地方并且无法确定任何内容无论是。
谢谢!
我需要知道!*
*不是真的,但是很高兴:)
答案 0 :(得分:1)
XAML语言服务使用类型转换器的GetStandardValues()来确定要在类型的下拉列表中显示的内容。例如,这与属性网格的作用相同。
不幸的是,框架提供的类型转换器并不总是实现GetStandardValues(),因此设计人员通常会为许多此类类型提供内部替换。属性网格和XAMl语言服务使用这些内部替换。
答案 1 :(得分:0)
我没有答案,但有一件有趣的事情是内部的FontStyle枚举。 MS.Internal.Text.TextInterface.Font样式,定义为
internal enum FontStyle
{
Normal,
Oblique,
Italic
}
这可能是设计师用于智能感知的内容。