启用后更改按钮的图像外观

时间:2018-01-05 14:30:06

标签: c# wpf xaml button mvvm

目前我在WPF中有按钮,但我希​​望它们在禁用时显得更亮,在启用时显示为全彩。是否有一个选项可以让图像自动变亮,或者我需要在inkscape中编辑它们并导入为完全不同的图像并更改ViewModel中的图像Source

其中一个按钮当前使用的代码:

<Button Visibility="{Binding SettingsButtonIsEnabled}" Command="{Binding OnSaveProject}" VerticalAlignment="Top" ToolTip="{DynamicResource SaveProject}">
    <Image RenderOptions.BitmapScalingMode="HighQuality" Source="/Axon.Oscillographic.Viewer;component/Icons/save.png"/>
</Button>

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案是在禁用按钮时缩小图像Opacity。这可以通过带有DataTrigger的Style来完成:

<Image RenderOptions.BitmapScalingMode="HighQuality" Source="/Axon.Oscillographic.Viewer;component/Icons/save.png">
    <Image.Style>
        <Style TargetType="Image">
            <Style.Triggers>
                 <DataTrigger Binding="{Binding IsEnabled, RelativeSource={RelativeSource AncestorType=Button}}" 
                              Value="False">
                     <Setter Property="Opacity" Value="0.75"/>
                 </DataTrigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>