Стиль C# WPF: наведение одной кнопки - сохранение изображения на одну кнопку
У меня есть 2 кнопки и одна должна изменить цвет фона при наведении курсора. Другой должен сохранить свое фоновое изображение также при наведении курсора.
Моя проблема в том, что второй также получает эффект наведения мыши, и изображение перезаписывается:(
<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
<Button Content="0" Name="num0" Foreground="White" Background="#FF2598CE" BorderBrush="#FF24779D" Style="{StaticResource hover}" />
2.Button
<Button Content="" Name="up" BorderBrush="#FF24779D">
<Button.Background>
<ImageBrush ImageSource="/Rechner;component/Images/btn_up.jpg" />
</Button.Background>
</Button>
спасибо за вашу помощь
1 ответ
Решение
Шаблон по умолчанию для второй кнопки означает, что он будет вести себя как кнопка 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>