Сложнее создать в коде тот же эффект, что и ThemeResource
. Необходимо сделать следующее:
- Получить ресурс через
Resources["resourceKey"]
и преобразовать его в Bru sh и назначить его TextBlock.Foreground
. - обрабатывать изменения темы (например, ThemeListener )
- Переназначить
Для сравнения, более подходящим методом является создание стиля 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 таким образом устраняет необходимость вручную обрабатывать изменения темы.