C#WPF风格:一键鼠标-一键保持图像



我有两个按钮,其中一个应该更改鼠标悬停时的背景颜色。另一个在鼠标悬停时也应该保留其背景图像。

我的问题是,第二个也得到鼠标悬停效果,图像被覆盖:(

    <Window.Resources>
      <Style x:Key="hover" TargetType="Button">
        <Setter Property="Background" Value="#FF2598CE" />
        <Style.Triggers>
             <Trigger Property="IsMouseOver" Value="True">
                 <Setter Property="Background" Value="#FF24779D" />
             </Trigger>
        </Style.Triggers>
      </Style>
    </Window.Resources>

1.按钮

<Button Content="0" Name="num0" Foreground="White" Background="#FF2598CE" BorderBrush="#FF24779D" Style="{StaticResource hover}" />

2.按钮

<Button Content="" Name="up" BorderBrush="#FF24779D">
    <Button.Background>
       <ImageBrush ImageSource="/Rechner;component/Images/btn_up.jpg" />
    </Button.Background>
</Button>

感谢您的帮助

第二个按钮的默认模板意味着它的行为将类似于Windows按钮(例如,在鼠标悬停时不显示背景图像)。您可能需要提供自己的模板。

在另一个问题中有一个很好的解释,可能会帮助你开始。

这也可能有所帮助。

我可能会这样做:

<Button Content="" Name="up" Template="{DynamicResource BackgroundButton}" >
        <Button.Background>
            <ImageBrush ImageSource="image.png" />
        </Button.Background>
        <Button.Resources>
            <ControlTemplate x:Key="BackgroundButton" TargetType="Button">
                <Border Name="border" BorderThickness="1" BorderBrush="Black" Background="{TemplateBinding Background}">
                    <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" TargetName="border">
                            <Setter.Value>
                                <ImageBrush ImageSource="image.png" Opacity="0.5" />
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Button.Resources>
    </Button>

相关内容

  • 没有找到相关文章