更改背景时如何更改 UWP 按钮前景 PointerOver 属性?

Posted

技术标签:

【中文标题】更改背景时如何更改 UWP 按钮前景 PointerOver 属性?【英文标题】:How to change a UWP ButtonForegroundPointerOver property when I change the backgorund? 【发布时间】:2022-01-16 13:43:14 【问题描述】:

我正在处理一个 UWP 项目,我需要在应用运行时更改按钮的背景和前景色。我已经做到了,但我还有一段代码可以让我禁用所有 UWP 按钮中存在的烦人的悬停效果。

有我的 App.xaml 代码:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.ThemeDictionaries>
            <ResourceDictionary x:Key="Default">
                <SolidColorBrush x:Key="ButtonForegroundPointerOver" Color="White"/>
                <SolidColorBrush x:Key="ButtonBackgroundPointerOver" Color="Gray"/>
            </ResourceDictionary>
        </ResourceDictionary.ThemeDictionaries>
    </ResourceDictionary>
</Application.Resources>

我想知道如何更改“颜色”属性以匹配每个按钮的状态(它们具有不同的颜色和背景)。默认情况下是否可以将颜色设置为 ButtonBackground 属性。如果没有,如何在运行时更改每个按钮的样式?

【问题讨论】:

***.com/a/47346258/7325217 - 如果有帮助请告诉我 【参考方案1】:

您有很多方法可以在运行时更改按钮的样式,正如您上面提到的代码,当您更改应用程序的@987654321 时,您已将ButtonForegroundPointerOver SolidColorBrush 放在ThemeDictionaries 中,并赋予它们浅色或默认键@,它将为使用默认样式的按钮控件应用匹配的 ButtonForegroundPointerOver。

如何在运行时更改每个按钮的样式?

按钮的样式属性可以在运行时设置,你可以用键名制作不同的按钮样式,并从页面或应用程序资源中加载,然后应用到按钮样式。

更多信息请参考XAML styles document。

【讨论】:

以上是关于更改背景时如何更改 UWP 按钮前景 PointerOver 属性?的主要内容,如果未能解决你的问题,请参考以下文章

自定义按钮上的 XAML UWP 焦点背景

如何在 C# 中更改 UWP 应用程序中按钮的背景颜色?

如何以编程方式更改 Win 8.1 或 Win 10 UWP 应用的背景主题?

按下时按钮前景色更改

如何更改 mfc 应用程序的背景属性

如何样式按钮悬停并单击前景?