【发布时间】:2021-03-21 00:40:49
【问题描述】:
只想在深色模式下将TextBlock 的Foreground 颜色设置为LightGreen,在浅色模式下设置为DarkGreen。我的应用程序中有一个主题设置。我想要颜色调整系统设置和应用设置。
我在页面加载时尝试过:
var isDark = ThemeSelectorService.Theme == ElementTheme.Dark;
if(ThemeSelectorService.Theme == ElementTheme.Default)
{
isDark = Application.Current.RequestedTheme == ApplicationTheme.Dark;
}
PriceText.Foreground = new SolidColorBrush(isDark ? Colors.LightGreen : Colors.DarkGreen);
<TextBlock x:Name="PriceText" Text="This is a Text"/>
但是当我更改系统设置时,颜色不会改变,直到重新加载到此页面,如何实现?
【问题讨论】:
-
您能告诉我 ThemeSelectorService.Theme 代表什么,它代表 PriceText.RequestTheme 属性吗?如果您能提供有关如何在代码隐藏中更改主题的代码,那就更好了。
-
ThemeSelectorService.Theme代表RequestedTheme代表Window.Current.Content