根据主题更改设置颜色

问题描述

我以编程方式设置了文本框的背景颜色:

ColorBrush m_textBoxBackground = ColorBrush(Windows::UI::Colors::LightGray());

但现在我有两个主题黑暗和光明。所以我需要设置主题的初始颜色。

我如何在 c++ winrt 中做到这一点?有什么建议吗?

解决方法

不得不说没有这样的Brush可以根据主题自动变化。您需要手动更改文本框的画笔。您可以设置一个名为 myBrush 的全局 SolidColorBrush 类型变量,然后使用 Color.FromArgb 方法将 rgb 颜色转换为 Brush。如下:

public SolidColorBrush myBrush;

if (App.Current.RequestedTheme==ApplicationTheme.Light) 
{ 
myBrush = new SolidColorBrush(Color.FromArgb(102,255,255));//#66FFFFFF
} 
else
{ 
myBrush = new SolidColorBrush(Color.FromArgb(102,0));//#66000000
}  

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...