繁体   English   中英

将鼠标悬停在按钮上以更改按钮WPF的图像

[英]Button Mouse-over to Change Images of buttons WPF

如果我错过任何事情,我深表歉意,这也是我的代码状态(正在开发的Jr开发人员)。 我正在尝试在资源字典中创建一种样式,该样式将执行以下操作:能够应用于所有按钮。 从白色图标png更改为蓝色图标png。 并最好在资源字典中完成此操作,但可以采用其他方法。

任何帮助将不胜感激 :)

这是我的app.xaml代码;

            <Style x:Key="SideMenuButton" TargetType="{x:Type Button}">
            <Setter Property="Background" Value="{StaticResource bmBlue}" />
            <Setter Property="BorderBrush" Value="White"/>
            <Setter Property="Foreground" Value="White"/>
            <Setter Property="FontFamily" Value="Cairo"/>
            <Setter Property="FontSize" Value="14"/>
            <Setter Property="Padding" Value="5"/>
            <Setter Property="Margin" Value="10 20 10 0" />
            <Setter Property="VerticalContentAlignment" Value="Center" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Border CornerRadius="5"  BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Background="{TemplateBinding Background}" >
                            <StackPanel Orientation="Horizontal">
                                <Image x:Name="image1" Visibility="Visible" MaxHeight="25" HorizontalAlignment="Center" RenderOptions.BitmapScalingMode="HighQuality" Source="C:\Users\PaulR\source\repos\eSuiteVer10\eSuiteVer10\Icons\BackIconBWblue.png"/>
                                <ContentPresenter Grid.Column="1" x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                            </StackPanel>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>

            <Style.Triggers>
                <Trigger Property="Button.IsMouseOver" Value="true">
                    <Trigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="BorderBrush.Color" To="#005389" />
                                <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="Background.Color" To="#fff"/>
                                <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="Foreground.Color" To="#005389" />
                            </Storyboard>
                        </BeginStoryboard>
                    </Trigger.EnterActions>
                    <Trigger.ExitActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="BorderBrush.Color" To="#fff" />
                                <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="Background.Color" To="#005389"/>
                                <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="Foreground.Color" To="#fff" />
                            </Storyboard>
                        </BeginStoryboard>
                    </Trigger.ExitActions>

                </Trigger>
            </Style.Triggers>
        </Style>

这是按钮Xaml;

   <Button Click="NewQuote_Click" Style="{StaticResource SideMenuButton}"  >
                <StackPanel Orientation="Horizontal">

                    <Image Grid.Column="0" MaxHeight="25" HorizontalAlignment="Center" RenderOptions.BitmapScalingMode="HighQuality" Source="C:\Users\PaulR\source\repos\eSuiteVer10\eSuiteVer10\Icons\NewIconBlueWhitewhite.png"/>
                    <TextBlock Text="New" Grid.Column="1" HorizontalAlignment="Center" />
                </StackPanel>
            </Button>

尝试这个:

<Style x:Key="TransparentStyle" TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border>
                    <Border.Style>
                        <Style TargetType="{x:Type Border}">
                            <Style.Triggers>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter Property="Background">
                                     <Setter.Value>
                                      <ImageBrush ImageSource= "\Images\ButtonImages\Image.png" Stretch="Uniform"/>
                                     </Setter.Value> 
                                   </Setter>
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </Border.Style>
                    <Grid Background="Transparent">
                        <ContentPresenter></ContentPresenter>
                    </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM