2017-05-21 2 views
0

Question vraiment stupide mais j'ai défini une image d'arrière-plan pour mon bouton via XAML. Mais quand j'exécute l'application et que je la survole, elle change de peau par défaut.Définition d'une image d'arrière-plan pour un bouton

Je n'arrive pas à faire de la souris?

<Button x:Name="btnPlay" Content="Play" Canvas.Left="93" Canvas.Top="93" Width="183" 
      Click="button_Click" Height="84" FontFamily="Showcard Gothic" Cursor="Hand" BorderBrush="{x:Null}"> 
    <Button.Background> 
     <ImageBrush ImageSource="Images/BlueButton.png"/> 
    </Button.Background> 
</Button> 
+2

Cocher cette réponse: http://stackoverflow.com/questions/12271916/wpf-button-mouseover-image?answertab=active#tab-top. Et la prochaine fois n'oubliez pas d'utiliser un bon titre, et non générique. – Baro

+0

Ouais, c'est le bouton chrome utilisé par le modèle de contrôle par défaut du bouton qui dérange avec l'arrière-plan sur la souris. Vous devez essentiellement définir votre propre modèle de contrôle pour le bouton pour vous en débarrasser, comme l'a souligné Baro ... – elgonzo

Répondre

0

Voici une modification de this solution. Envisagez d'utiliser Background="{TemplateBinding Background}" pour le Border à l'intérieur du Template, afin de mettre à jour le Background du Border lorsque l'arrière-plan Button a été modifié.

<Button x:Name="btnPlay" Content="Play" Canvas.Left="93" Canvas.Top="93" Width="183" 
     Click="button_Click" Height="84" FontFamily="Showcard Gothic" Cursor="Hand" 
     BorderBrush="{x:Null}"> 
    <Button.Background> 
     <ImageBrush ImageSource="/WpfApplication1;component/5.png" /> 
    </Button.Background> 
    <Button.Template> 
     <ControlTemplate TargetType="Button"> 
      <Border Name="border" Background="{TemplateBinding Background}"> <!--Consider this--> 
       <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" /> 
      </Border> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background"> 
         <Setter.Value> 
          <ImageBrush ImageSource="/WpfApplication1;component/5.png" /> 
         </Setter.Value> 
        </Setter> 
        <Setter Property="BorderBrush" Value="Black"/> 
       </Trigger> 
      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Button.Template> 
</Button>