Аналог TextBlock.Foreground для UWP/WinUI
Можно ли глобально установить передний план для границы для внутреннего контроля? Похоже на WPF
TextBlock.Foreground
прикрепленное имущество. Я пробовал этот код, он не работает:
<Border.Resources>
<SolidColorBrush
x:Key="SystemControlForegroundAltMediumHighBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundAltHighBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundBaseMediumBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundBaseHighBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundBaseLowBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundBaseMediumHighBrush"
Color="Black"
/>
<SolidColorBrush
x:Key="SystemControlForegroundBaseMediumLowBrush"
Color="Black"
/>
</Border.Resources>
я тоже пробовал
DefaultTextForegroundThemeBrush
и
SystemColorWindowTextColor
PS Немного поясню причины — пишу утилиту для перевода xaml-кода WPF в эквивалентный UWP/WinUI, и ищу альтернативу без переопределения стилей (т.к. внутренние элементы управления могут явно задавать свои). Пока единственное решение, которое я вижу, — это явно установить свойство Foreground для всех текстовых блоков внутри границы, если оно не установлено.
1 ответ
Можно ли глобально установить передний план для границы для внутреннего контроля?
Я должен сказать, что ответ - нет. Невозможно глобально изменить системный цвет, он просто применяется к границе и ее дочерним элементам. Вы можете переопределить системный цвет только в
Application.Resources
из App.Xaml. И это повлияет на все элементы управления в приложении, использующем этот цвет.
Для вашего сценария я предлагаю вам изменить
Foreground
свойство этих дочерних элементов управления в элементе управления Border.
Как это:
<Border>
<Border.Resources>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Red" />
</Style>
</Border.Resources>
<!--red text-->
<TextBlock Text="2132123314132133143123314213412343" />
</Border>
<!--black text-->
<TextBlock Text="2132123314132133143123314213412343" />