我正在使用以下内容来更改TextBlock
中UWP
的前景色。
textBlock.Foreground = new SolidColorBrush(Colors.Orange);
如何更改代码,以便可以使用动态的浅色和深色主题颜色,例如SystemBaseHighColor
?颜色列表在https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/xaml-theme-resources
答案 0 :(得分:0)
在代码中创建与ThemeResource
相同的效果更加复杂。需要执行以下操作:
Resources["resourceKey"]
获取资源并将其转换为Brush并将其分配给TextBlock.Foreground
。相比之下,更合适的方法是创建TextBlock样式。创建TextBlock
时,请获取Style
并将其分配给TextBlock.Style
。
<Style TargetType="TextBlock" x:Key="CustomTextStyle">
<Setter Property="Foreground" Value="{ThemeResource SystemBaseHighColor}" />
</Style>
textBlock.Style = (Style)Application.Current.Resources["CustomTextStyle"];
通过这种方式设置TextBlock的样式,无需手动处理主题更改。