【问题标题】:#WPF Change image on mouseOver Button#WPF 在 mouseOver 按钮上更改图像
【发布时间】:2018-09-15 16:07:06
【问题描述】:

我正在尝试更改堆栈面板中按钮内的图像。 当按钮检测到鼠标时,我希望图像发生变化。有可能吗?

谢谢

我的按钮:

   <Button Background="Transparent" Height="17" Width="17" BorderBrush="Transparent" HorizontalAlignment="Right" Margin="0 0 6 0" Click="Button_Click" ToolTip="Copier les informations dans le Clipboard" Grid.Column="4" Style="{StaticResource hover2}">
                <StackPanel Height="17" Width="17">
                    <Image Source="Resources/copyPaste.png" Height="17" Width="17" />
                </StackPanel>
            </Button>      

我的风格适用:

<Style x:Key="hover2" TargetType="Button">
        <Setter Property="OverridesDefaultStyle" Value="True"/>       
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Name="border" 
                        BorderThickness="0"                         
                        BorderBrush="Transparent"                          
                        Background="{TemplateBinding Background}">
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="border" Property="BorderBrush" Value="Black" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

【问题讨论】:

    标签: c# wpf styles


    【解决方案1】:

    当然可以:

    <Grid.Resources>
              <Style x:Key="hover2" TargetType="Button">
                  <Setter Property="OverridesDefaultStyle" Value="True"/>
                  <Setter Property="Template">
                      <Setter.Value>
                          <ControlTemplate TargetType="Button">
                                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center">
                                    <ContentPresenter.Content>
                                        <Border Name="border" 
                                              BorderThickness="0"                         
                                              BorderBrush="Transparent"                          
                                              Background="{TemplateBinding Background}">
                                            <Image x:Name="ButtonImage1" Source="Resources/copyPaste.png" Height="17" Width="17" />
                                        </Border>
                                    </ContentPresenter.Content>
                                </ContentPresenter>
                                <ControlTemplate.Triggers>
                                  <Trigger Property="IsMouseOver" Value="True">
                                      <Setter TargetName="border" Property="BorderBrush" Value="Black" />
                                        <Setter TargetName="ButtonImage1" Property="Source" Value="Resources/hoverImage.png" />
                                    </Trigger>
                              </ControlTemplate.Triggers>
                          </ControlTemplate>
                      </Setter.Value>
                  </Setter>
              </Style>
            </Grid.Resources>
    

    请参阅我将您的控件放在内容演示器中,然后命名图像,然后在您的控件模板触发器中,您可以通过其名称访问图像,然后分配它的来源。

    Button

     <Button
               x:Name="Button1"
               Background="Transparent"
               Height="17"
               Width="17"
               BorderBrush="Transparent"
               HorizontalAlignment="Right" Margin="0 0 6 0" ToolTip="Copier les informations dans le Clipboard" Grid.Column="4" Style="{StaticResource hover2}"/>
    

    【讨论】:

      猜你喜欢
      • 2011-02-02
      • 2018-03-25
      • 2013-11-28
      • 1970-01-01
      • 1970-01-01
      • 2016-07-12
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      相关资源
      最近更新 更多