但似乎Style.Triggers在UWP中不支持。
是的你是对的。在UWP中,我们需要使用内置的VisualStateManager。
我不知道你是如何实现你的菜单,但如果你想改变Button
的背景,当它鼠标悬停,按下或其他一些状态,你可以修改按钮的default template style。修改被命名为PointerOver
这样的VisualState
:
<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
而这种风格的,例如像这样的关键这个模板:
<Button Content="Button 1" Style="{StaticResource ButtonStyle}" />