2013-08-15 2 views
0

У меня есть 2 кнопки, и нужно изменить цвет фона при наведении курсора мыши. Другой должен сохранить свой фоновый образ также при наведении указателя мыши.C# WPF Стиль: One Button Mouseover - одна кнопка держать изображение

Моя проблема в том, что второй один также получает эффект наведения мыши и изображение перезаписан :(

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

thx за вашу помощь

+0

Вы пытались с помощью ручки событий, чтобы сделать это? –

+0

нет, как я должен это делать? – user2687564

ответ

4

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

В другом question есть хорошее объяснение, которое может помочь вам приступить к работе.

This также может помочь.

я бы, вероятно, сделать что-то вроде этого:

<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> 
Смежные вопросы