C# WPF/XAML按钮.模板
我有点困惑。这不是什么大问题,但有人能解释为什么会这样吗C# WPF/XAML按钮.模板,c#,wpf,xaml,C#,Wpf,Xaml,我有点困惑。这不是什么大问题,但有人能解释为什么会这样吗 <Button Command="{Binding CancelButtonClickCommand}" DockPanel.Dock="Right" Height="16" Width="16"> <Button.Template> <ControlTemplate> <Grid Background="{Binding CancelImage}"/> &l
<Button Command="{Binding CancelButtonClickCommand}" DockPanel.Dock="Right" Height="16" Width="16">
<Button.Template>
<ControlTemplate>
<Grid Background="{Binding CancelImage}"/>
</ControlTemplate>
</Button.Template>
工作,当这个
<Button Command="{Binding CheckButtonClickCommand}" DockPanel.Dock="Left" Height="16" Width="16">
<Button.Template>
<ControlTemplate>
<Image Source="{Binding CheckImage}"/>
</ControlTemplate>
</Button.Template>
不是吗?
不同之处在于,我在第一个代码中使用了
,在不起作用的代码中使用了
。
在后一种情况下,图像是不可见的,我甚至不调用命令
提前多谢
/CGrid.Background绑定到
画笔
类型,而Image.Source需要ImageSource
。解决这个问题的最简单方法是在CheckImage绑定中公开笔刷的ImageSource
属性。如果不可能,您也可以将转换器连接到图像。源绑定并从绑定到的画笔返回ImageSource。CheckImage是有效的ImageSource吗?@Lennart CheckImage和CancelImage都是ImageBrush类型Swell,这就是问题所在。Grid.Background需要一个笔刷作为类型(在您的情况下可以使用),而Image.Source需要一个ImageSource(它不工作,因为您不能隐式地从ImageBrush转换)。@Lennart。但是当然。谢谢!干杯