Quello che ti sta succedendo è normale. Quando crei un pulsante, utilizzerà le sue proprietà predefinite nel caso in cui tu non lo modifichi/sovrascruisci.
In questo caso, quando si crea il pulsante, si sostituisce la proprietà Background
, ma solo per lo stato normale del pulsante. Se vuoi che lo sfondo cambi anche quando stai passando il mouse, dovresti dire al pulsante di farlo.
A tale scopo, suggerisco di ignorare il pulsante Modello utilizzando gli stili, in questo modo:
<Window x:Class="ButtonTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ImageBrush x:Key="ButtonImage" ImageSource="/ButtonTest;component/Resources/ok.png"></ImageBrush>
<Style TargetType="Button">
<Setter Property="Background" Value="{StaticResource ButtonImage}"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" RecognizesAccessKey="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Blue" />
<Setter Property="Cursor" Value="Hand" />
<!-- If we don't tell the background to change on hover, it will remain the same -->
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="84,75,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
</Grid>
</Window>
In questo caso, sarà applicato questo stile per tutti i pulsanti. È possibile specificare quale pulsante per applicare lo stile aggiungendo un x:Key
al vostro stile e quindi specificare nel vostro pulsante:
<Style TargetType="Button" x:Key="ButtonStyled">
.....
<Button Style="{StaticResource ButtonStyled}" Content="Button" Height="23" HorizontalAlignment="Left" Margin="84,75,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
Avete Eventtriggers o codice dietro che potrebbe cambiare l'immagine? –
No. L'immagine sul pulsante non cambierà da nessuna parte. Sto specificando l'immagine in Xaml in fase di progettazione. Ma se devo cambiare l'immagine sui grilletti, nessun problema, lo farò anch'io. – WAQ
Puoi pubblicare il tuo codice? Creazione di pulsanti e stili di stile. – Sonhja