在WPF Bug清单12中我们介绍过一个与不同WPF版本上XAML解析相关的Bug。今天要介绍另一个.NET Framework 4对于XAML解析上的改进。
我们知道Button属于ContentControl,ContentControl里的Content逻辑上可以是任何其它Control。所以我们可以把Button的Content设置为一个Image。这也是一个很常见的功能。
代码如下所示:
<Button Height="28">
<Image Width="16" Height="16" Source="Green.PNG" Stretch="Fill"/>
</Button>
<Image Width="16" Height="16" Source="Green.PNG" Stretch="Fill"/>
</Button>
那么我们可不可以在Button的Style里把Content属性就设置为Image呢?理论上应该没有什么问题。但是事实是在.NET Framework 4之前的版本的WPF中,像下面这样:
<Style x:Key="ImageButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Content">
<Setter.Value>
<Image Width="16" Height="16" Source="Green.PNG" Stretch="Fill"/>
</Setter.Value>
</Setter>
<Setter Property="ToolTip">
<Setter.Value>
<Image Width="16" Height="16" Source="Green.PNG" Stretch="Fill"/>
</Setter.Value>
</Setter>
</Style>
<Setter Property="Content">
<Setter.Value>
<Image Width="16" Height="16" Source="Green.PNG" Stretch="Fill"/>
</Setter.Value>
</Setter>
<Setter Property="ToolTip">
<Setter.Value>
<Image Width="16" Height="16" Source="Green.PNG" Stretch="Fill"/>
</Setter.Value>
</Setter>
</Style>