但似乎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}" />