Was ist mit dir passiert, ist normal. Wenn Sie eine Schaltfläche erstellen, werden ihre Standardeigenschaften verwendet, falls Sie sie nicht ändern/überschreiben.
Wenn Sie in diesem Fall Ihre Schaltfläche erstellen, überschreiben Sie die Eigenschaft Background
, aber nur für den normalen Status Ihrer Schaltfläche. Wenn Sie möchten, dass sich der Hintergrund auch ändert, wenn Sie den Mauszeiger bewegen, sollten Sie dies der Schaltfläche mitteilen.
Zu diesem Zweck schlage ich Ihnen die Schaltfläche Vorlage mit Stile außer Kraft zu setzen, wie folgt aus:
<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 diesem Fall wird dieser Stil für alle Tasten angewendet werden. Sie können die Schaltfläche anwenden Stil geben Sie eine x:Key
zu Ihrem Stil hinzufügen und es dann in Ihre Schaltfläche festlegen:
<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" />
Haben Sie irgendwelche Eventtriggers oder Code hinter das könnte das Bild ändern? –
Nein. Das Bild auf der Schaltfläche ändert sich nicht von überall. Ich gebe das Bild im Xaml zur Entwurfszeit an. Aber wenn ich das Bild bei Triggern ändern muss, dann mache ich das auch. – WAQ
Können Sie Ihren Code posten? Erstellen von Schaltflächen und Schaltflächen. – Sonhja