关于 UWP c# 中的 mouseEnter 按钮样式
On mouseEnter button style in UWP c#
我是 UWP c# 编程的初学者。所以我有一个带有一些按钮的菜单,我想改变这些样式。我更改默认 style.But 我无法更改 onMouseEnter
样式。我用谷歌搜索后发现了这样的代码:
<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 中不支持。你能帮帮我吗?
But it seems Style.Triggers doesn't support in 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}" />
我是 UWP c# 编程的初学者。所以我有一个带有一些按钮的菜单,我想改变这些样式。我更改默认 style.But 我无法更改 onMouseEnter
样式。我用谷歌搜索后发现了这样的代码:
<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 中不支持。你能帮帮我吗?
But it seems Style.Triggers doesn't support in 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}" />