Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WPF XAML中有多个触发器不起作用_.net_Wpf_Xaml - Fatal编程技术网

.net WPF XAML中有多个触发器不起作用

.net WPF XAML中有多个触发器不起作用,.net,wpf,xaml,.net,Wpf,Xaml,我有一个简单的按钮。我有两个触发器,当鼠标悬停在按钮上或单击按钮时,每个触发器都会使按钮的颜色褪色。它最初工作,但一旦单击按钮,样式的IsMouseOver部分将停止工作。只有被压缩才能工作。该样式定义为: <Style TargetType="Button"> <Setter Property="OverridesDefaultStyle" Value="True"/> <Setter Property="Templat

我有一个简单的按钮。我有两个触发器,当鼠标悬停在按钮上或单击按钮时,每个触发器都会使按钮的颜色褪色。它最初工作,但一旦单击按钮,样式的
IsMouseOver
部分将停止工作。只有
被压缩
才能工作。该样式定义为:

<Style TargetType="Button">
           <Setter Property="OverridesDefaultStyle" Value="True"/>
           <Setter Property="Template">
              <Setter.Value>
                 <ControlTemplate TargetType="Button">
                    <Border
                       Background="{TemplateBinding Background}"
                       BorderBrush="Silver"
                       BorderThickness="0.5"
                       CornerRadius="0">
                       <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                    </Border>
                    <ControlTemplate.Triggers>
                       <Trigger Property="IsMouseOver" Value="True">
                          <Trigger.EnterActions>
                             <BeginStoryboard>
                                <Storyboard>
                                   <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="White"/>
                                </Storyboard>
                             </BeginStoryboard>
                          </Trigger.EnterActions>
                          <Trigger.ExitActions>
                             <BeginStoryboard>
                                <Storyboard>
                                   <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="#FF272727"/>
                                </Storyboard>
                             </BeginStoryboard>
                          </Trigger.ExitActions>
                       </Trigger>
                                <Trigger Property="IsPressed" Value="True">
                                    <Trigger.EnterActions>
                             <BeginStoryboard>
                                <Storyboard>
                                   <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="DarkSlateGray"/>
                                </Storyboard>
                             </BeginStoryboard>
                          </Trigger.EnterActions>
                          <Trigger.ExitActions>
                             <BeginStoryboard>
                                <Storyboard>
                                   <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="#FF272727"/>
                                </Storyboard>
                             </BeginStoryboard>
                          </Trigger.ExitActions>
                       </Trigger>
                    </ControlTemplate.Triggers>
                 </ControlTemplate>
              </Setter.Value>
           </Setter>
        </Style>

该按钮仅定义为
Write to index


我看过一些其他的答案,但它们使用了
multi-trigger和multi-datatrigger。
。我也尝试过改变顺序。这并不能解决问题

iPressed触发器的退出操作是强制颜色并覆盖悬停触发器

将iPressed Exit操作的To值更改为:

To="{x:Null}"

这将恢复为默认颜色(按钮本身上的颜色),并允许悬停再次更改它。

感谢您的明确解释,这非常有效