用于启用和禁用WPF中按钮状态的不同图像

10 c# wpf image button

我想根据其状态更改下面代码中的按钮图像,即使用不同的图像启用和禁用状态.

<Button CommandParameter="Open" >
    <StackPanel Orientation="Horizontal" >
        <Image Source="../icons/big/open.png" Width="20" Height="20"></Image>
    </StackPanel>
</Button>
Run Code Online (Sandbox Code Playgroud)

谢谢.

Joh*_*zek 10

你可以使用带有这样的触发器的样式:

<Style TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <StackPanel Orientation="Horizontal" >
                    <Image Name="PART_Image" Source="path to normal image" />
                </StackPanel>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Source" Value="path to mouse over image" TargetName="PART_Image"/>
                    </Trigger>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter Property="Source" Value="path to pressed image" TargetName="PART_Image"/>
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="False">
                        <Setter Property="Source" Value="path to disabled image" TargetName="PART_Image"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

  • 是的,您可以使用与上述相同的逻辑并更改图像的不透明度属性.你也可以做一些事情,比如在模板上添加一个边框,当鼠标悬停在图像上时显示/隐藏它,或者更改背景颜色...... (2认同)

Tow*_*wer 9

我使用以下代码使按钮内部的图像在禁用按钮时具有一半的不透明度并且效果很好!

<Style TargetType="Button">
    <Style.Resources>
        <Style TargetType="Image">
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Opacity" Value="0.5" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Style.Resources>
</Style>
Run Code Online (Sandbox Code Playgroud)


Nil*_*ils 0

尝试使用 Style.Triggers 请参阅帖子wpf-style-trigger