c# - 为什么所有按钮在 WPF 中一次接收相同的状态?
问题描述
我有以下按钮样式:
<Style TargetType="Button">
<Setter Property="SnapsToDevicePixels" Value="true" />
<Setter Property="FontFamily" Value="Roboto" />
<Setter Property="MinHeight" Value="{StaticResource ButtonMinHeight}" />
<Setter Property="MinWidth" Value="{StaticResource ButtonMinWidth}" />
<Setter Property="Padding" Value="{StaticResource ButtonPadding}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="bMain"
CornerRadius="{StaticResource ButtonCornerRadius}"
BorderThickness="{StaticResource ButtonBorderThickness}"
BorderBrush="Transparent"
Background="{StaticResource ButtonBackgroundBrush}"
TextBlock.Foreground="{StaticResource ButtonForegroundBrush}">
<ContentPresenter Margin="{TemplateBinding Padding}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
RecognizesAccessKey="True" />
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="bMain" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
<DiscreteColorKeyFrame KeyTime="0" Value="{StaticResource ButtonHoverBackgroundColor}" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="bMain" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
<DiscreteColorKeyFrame KeyTime="0" Value="{StaticResource ButtonDownBackgroundColor}" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="bMain" Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)">
<DiscreteColorKeyFrame KeyTime="0" Value="{StaticResource ButtonDisabledForegroundColor}" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsDefault" Value="True">
<Setter TargetName="bMain" Property="BorderBrush" Value="{StaticResource ButtonBorderBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
另外,我有两个按钮:
<Button Grid.Column="1" Command="{Binding LogCommand}" Content="{x:Static r:Strings.Main_Button_Log}" Margin="0,0,24,0"/>
<Button Grid.Column="2" Command="{Binding CloseCommand}" Content="{x:Static r:Strings.Main_Button_Close}" />
问题是它们似乎同时接收到相同的状态。
普通的:
悬停(在其中之一上):
如果图像不够清晰,则在第二张中,两个按钮都被突出显示,而不是只有一个。压制的情况相同。
我怎样才能解决这个问题?
解决方案
推荐阅读
- react-native - 从底部选项卡导航器中删除标题的边框底线。反应导航 v6
- android - 如何在android服务中使用全局变量
- r - R:如何阻止fuzzyjoin::interval_join 在边缘产生重复?
- php - html选项值的PHP模板if语句
- sql - DolphinDB:运行 ploop 语句发生错误
- c# - C# 视频混合
- c# - 为什么我从 web api 得到一个空数组 json 响应?
- c# - 使用 ODataQuery 方法的输出从数据库中检索数据
- swift - 如何在 iFrame 上获取 Vimeo 直播观看时间
- java - Spring重试未处理异常