问题描述
我以编程方式设置了文本框的背景颜色:
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
}