我无法弄清楚为什么这个XAML代码不起作用。使用TemplateBinding时(见下文),背景颜色不设置。但是当我使用普通的颜色字符串(即“红色”)时,它可以正常工作。
<ControlTemplate x:Key="InstanceButtonTemplate" TargetType="{x:Type Control}">
<Grid>
<Rectangle>
<Rectangle.Fill>
<SolidColorBrush Color="{TemplateBinding Background}"></SolidColorBrush>
</Rectangle.Fill>
</Rectangle>
</Grid>
</ControlTemplate>
然而,当我以这种方式使用TemplateBinding时,它工作得很好......
<ControlTemplate x:Key="InstanceButtonTemplate" TargetType="{x:Type Control}">
<Grid>
<Rectangle Fill="{TemplateBinding Background}"></Rectangle>
</Grid>
</ControlTemplate>
有什么想法吗?
编辑: 以澄清,我打算将其扩展为使用渐变画笔,这就是为什么我需要能够使用渐变分配给Rectangle.Fill属性XAML而不是普通字符串。
答案 0 :(得分:5)
那是因为Color与Background
的类型不同背景是画笔,颜色是..好颜色..您可以使用IValueConverter将画笔转换为颜色..
HTH