Как установить цвет фона TextBlock для темы HighContrast в UWP - PullRequest
1 голос
/ 26 мая 2020

В приложении Microsoft UWP я попытался установить цвет фона TextBlock с помощью Grid в XAML. Это было нормально для темы по умолчанию. Но когда я включаю тему HighContrast, только часть текста с заливкой имеет черный цвет; в то время как оставшаяся часть TextBlock изменяется в соответствии с темой HighContrast. Я также пробовал использовать Border, но проблема все еще возникает. Я также пробовал использовать свойство Style, та же проблема.

Может ли кто-нибудь помочь мне решить эту проблему?

<Grid Height="50" Width="500" Background="{ThemeResource SystemColorHighlightColor}">
        <TextBlock Text="High Contrast" Width="250" FontSize="20" VerticalAlignment="Center" HorizontalAlignment="Center"/>
    </Grid>

Check the output image if you want a clear vision

Сравнение с поведением системы

1 Ответ

0 голосов
/ 26 мая 2020

Как установить цвет c для темы HighContrast в UWP

Вышеуказанное поведение является конструктивным, а фон TextBlock контролировался системой. Если вы хотите его отредактировать, пожалуйста, go Настройка страница, чтобы найти Настройка высокой контрастности -> Фон . И редактирование Background изменит фон TextBlock в модели HighContrast.

enter image description here

И если вы хотите, чтобы сетка имела тот же цвет, пожалуйста оставьте Selected Text цвет таким же, как и цвет фона.

Обновить

В общем, мы часто устанавливаем фон сетки как ApplicationPageBackgroundThemeBrush, чтобы фон текстового блока оставался таким же как сетку, затем избегайте показа черного блока.

<Grid
    Width="500"
    Height="50"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
    >
    <TextBlock
        Width="250"
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        FontSize="20"
        SelectionChanged="TextBlock_SelectionChanged"
        Text="High Contrast"
        />
</Grid>

Обновление 1

Проверьте свойство TextBlock HighContrastAdjustmen. если мы установим его как None , черный блок исчезнет.

<Grid
    Width="500"
    Height="50"
    Background="{ThemeResource SystemColorHighlightColor}"
    >
    <TextBlock
        Width="250"
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        FontSize="20"
        Foreground="Black"
        HighContrastAdjustment="None"
        Text="High Contrast"
        Visibility="Visible"
        />
</Grid>
...