c# - UWP c# 中的 mouseEnter 按钮样式

标签 c# uwp windows-10-universal mouseenter

我是 UWP C# 编程初学者。所以我有一个带有一些按钮的菜单,我想更改这些样式。我更改了默认样式。但无法更改 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按钮。修改名为 PointerOverVisualState,如下所示:

<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}" />

关于c# - UWP c# 中的 mouseEnter 按钮样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341664/

相关文章:

xamarin - 有没有办法运行 Xamarin UWP 项目而无需每次都部署

uwp - 将NavigationView添加到XAML : "Cannot find a Resource with the Name/Key NavigationViewItemDefaultStyle"

c# - Windows UWP C# 删除文件夹

xaml - 为什么按钮不拉伸(stretch)以填充网格单元格?

uwp - 边缘扩展 native 消息 : UWP app is closed if no response sent back to Edge browser/Extension

c# - Encoding.utf8 将逗号转换为 C# 中的某些特殊字符

C# Windows 通用 : Unable to add items to DataGrid dynamically

c# - 为什么 PdfSharp 在网络链接周围创建边框?

c# - 具有依赖注入(inject)的 WinForms MVC

c# - Unity 2D 实例化带文本的预制件