#WPF Изменить изображение на кнопке mouseOver - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь изменить изображение внутри кнопки в панели стека.Когда кнопка обнаруживает мышь, я хочу, чтобы изображение изменилось.Возможно ли это?

Спасибо

Моя кнопка:

   <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>

1 Ответ

0 голосов
/ 15 сентября 2018

Конечно, вы можете:

<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}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...