在UWP c#中的mouseEnter按钮样式

时间:2016-09-06 06:06:47

标签: c# uwp windows-10-universal mouseenter

我是UWP c#编程的初学者。所以我有一个带有一些按钮的菜单,我想改变这些风格。我更改了默认样式。但我无法更改onMouseEnter样式。我用Google搜索后找到了这样的代码:

<Style x:Key="ButtonStyle" TargetType="Button">
        <Setter Property="BorderBrush" Value="Orange" />
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="Red"/>
            </Trigger>
        </Style.Triggers>
    </Style>

但似乎Style.Triggers在UWP中不支持。你能帮帮我吗?

1 个答案:

答案 0 :(得分:3)

  

但似乎Style.Triggers在UWP中并不支持。

是的,你是对的。在UWP中,我们需要使用内置的VisualStateManager

我不知道你是如何实现你的菜单的,但如果你想在鼠标悬停,按下或其他状态时更改Button的背景,你可以修改{{ 3}}按钮。修改名为VisualState的{​​{1}},如下所示:

PointerOver

然后您可以使用<VisualState x:Name="PointerOver"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="RootGrid"> <DiscreteObjectKeyFrame KeyTime="0" Value="Red" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="ContentPresenter"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonBorderBrushPointerOver}" /> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter"> <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonForegroundPointerOver}" /> </ObjectAnimationUsingKeyFrames> <PointerUpThemeAnimation Storyboard.TargetName="RootGrid" /> </Storyboard> </VisualState> 和此样式的键来应用此模板,例如:

StaticResource