So ändern Sie die Hintergrundfarbe der Schaltflächen klicken Sie auf eine beliebige von Ihnen?
Habe ich 3 buttons. Ich schuf einen Stil, den ich verwenden Sie für alle drei Schaltflächen, um zu zeigen, MouseOver und Drückte Staaten. Ich muss Sie Logik, um anzuzeigen, welche Taste wurde ausgewählt /angeklickt. Wenn die-Taste geklickt wird, dann sind die hintergrund-Farbe sollte bleiben/werden, wie für die gedrückten Zustand und die anderen zwei Schaltflächen zurücksetzen, um die Hintergrundfarbe zu werden, als einen normalen Zustand. Unten ist der code, den ich habe. Ich Frage mich, ob es möglich ist, alle in XAML oder, wie es im code behind? Danke ich Voraus.
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="test3.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Window.Resources>
<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="ButtonBackground" BorderBrush="{TemplateBinding BorderBrush}" SnapsToDevicePixels="true" Background="#FFFFE640">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="ButtonBackground">
<EasingColorKeyFrame KeyTime="0" Value="#FFC8B432"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="ButtonBackground">
<EasingColorKeyFrame KeyTime="0" Value="#FFBCAA31"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<ContentPresenter RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,0,0,4" HorizontalAlignment="Center" VerticalAlignment="Bottom"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="true">
</Trigger>
<Trigger Property="ToggleButton.IsChecked" Value="true">
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#ADADAD"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Storyboard x:Key="OnMouseOneEnter">
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="button_One">
<EasingColorKeyFrame KeyTime="0" Value="#FFDAC326"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="OnMouseOneLeave">
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="button_One">
<EasingColorKeyFrame KeyTime="0" Value="#FFFFE640"/>
</ColorAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="button_Two">
<EasingColorKeyFrame KeyTime="0" Value="#FF85781C"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="OnMoseOneClick">
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="button_One">
<EasingColorKeyFrame KeyTime="0:0:0.2" Value="#FFDAC326"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Grid>
<StackPanel x:Name="LayoutRoot">
<Button x:Name="button_One" HorizontalAlignment="Left" Width="90" Height="90" Content="One" Style="{DynamicResource ButtonStyle1}" Cursor="Hand" Margin="0,0,0,4" />
<Button x:Name="button_Two" HorizontalAlignment="Left" Width="90" Height="90" Content="Two" Style="{DynamicResource ButtonStyle1}" Cursor="Hand" Margin="0,0,0,4" />
<Button x:Name="button_Three" HorizontalAlignment="Left" Width="90" Height="90" Content="Two" Style="{DynamicResource ButtonStyle1}" Cursor="Hand" Margin="0,0,0,4" />
</StackPanel>
</Grid>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klingt für mich wie bist du eigentlich nach radio-button-Funktionalität.
http://www.wpftutorial.net/RadioButton.html
Geben Sie jedem radio-button die gleiche GroupName-Eigenschaft, und Sie erhalten die Funktionalität, die Sie benötigen.
Könnte man ändern, dass die "IsFocused" die Eigenschaft, statt "IsPressed"
Toggle-buttons? Erstellen Sie eine Schaltfläche zum Umschalten Benutzer-Steuerung besteht aus zwei Tasten. Man beginnt versteckt. Wenn Sie auf die sichtbare, verstecken es und zeigen die verborgenen ein. Dann können Sie auch das anzeigen/verstecken der anderen Tasten in einem OnClick-Ereignis.