WPF Button Content Image Onmouserover изменить - PullRequest
0 голосов
/ 08 января 2019

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

<Button x:Name="Test" HorizontalAlignment="Left" VerticalAlignment="Top" Width="120" Margin="40,40,0,0" Height="120" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" BorderThickness="0" Click="Test_Click">
<Button.Content>
    <Image Source="Images/Test.png"></Image>                    
</Button.Content>
<Button.Style>
    <Style>
        <Style.Triggers>
            <Trigger Property="Button.IsMouseOver" Value="True">
                <Setter Property="Button.Content" Value=" <Image Source='Images/TestHover.png'></Image> " />
            </Trigger>
        </Style.Triggers>
    </Style>
</Button.Style>

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Это просто! Проверьте IsMouseover событие для кнопки «Изображение не для». Плюс проверьте это для различных способов изменения изображения для события MouseOver.

<Button Name="testBtn" Margin="10 0 0 0" Click="TestBtn_OnClick">
    <Button.Content>
        <Image>
            <Image.Style>
                <Style TargetType="{x:Type Image}">
                    <Setter Property="Source" Value="Resources/Apps-Dialog-Close-icon.png"/>
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Source" Value="Resources/basic-grid-with-center-lines-png-14.png"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Image.Style>
        </Image>
    </Button.Content>
</Button>
0 голосов
/ 08 января 2019

Можете ли вы попробовать шаблон управления

<Button Width="100" Height="100">
        <Button.Template>
            <ControlTemplate>
                <Image Name="image" Source="pack://application:,,,/images/1.png"/>
                <ControlTemplate.Triggers>
                    <Trigger  Property="Button.IsMouseOver" Value="true">
                        <Setter Property="Source" TargetName="image" Value="pack://application:,,,/images/2.png"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Button.Template>
    </Button>
...