RichEditBox在黑暗主题上无法正常工作

时间:2018-11-21 14:30:30

标签: uwp themes richeditbox

我正在开发一个应用程序,该应用程序提供具有浅色和深色主题的富文本编辑功能。 切换到深色主题时,我无法查看焦点对准的文本,并且切换焦点时,任何文本颜色都会丢失。 我创建了一个简单的文本案例,其中有两个富文本框,一个将所选文本更改为红色的按钮,以及两个在明暗主题之间切换的按钮。 我正在对丰富的编辑框应用样式,但它似乎忽略了x:Key =“ TextControlForegroundFocused”,或者在应用主题样式之前计算了SystemBaseHighColor。

XAML

<Page.Resources>

    <!-- RichEditBox Styling-->
    <SolidColorBrush x:Key="TextControlForegroundFocused" Color="{ThemeResource SystemBaseHighColor}"/>
    <SolidColorBrush x:Key="TextControlForegroundDisabled" Color="{ThemeResource SystemBaseHighColor}"/>
    <SolidColorBrush x:Key="TextControlBackgroundFocused" Color="{ThemeResource TextControlForeground}"/>

</Page.Resources>

<StackPanel Name="_Root" >

    <StackPanel Orientation="Horizontal" >
        <Button Content="Red" Click="OnRed"/>
        <Button Content="Dark Theme" Click="OnDark"/>
        <Button Content="Light Theme" Click="OnLight"/>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
        <RichEditBox Name="RichEditor1" Style="{ThemeResource EditBoxStyle}" Width="250" Height="200"/>
        <RichEditBox Name="RichEditor2" Style="{ThemeResource EditBoxStyle}" Width="250" Height="200"/>
    </StackPanel>

</StackPanel>

C#

    private void OnRed(object sender, RoutedEventArgs e)
    {
        RichEditor1.Document.Selection.CharacterFormat.ForegroundColor = Colors.Red;
        RichEditor2.Document.Selection.CharacterFormat.ForegroundColor = Colors.Red;
    }

    private void OnDark(object sender, RoutedEventArgs e)
    {
        _Root.RequestedTheme = ElementTheme.Dark;
        _Root.Background = new SolidColorBrush(Colors.Black);
    }
    private void OnLight(object sender, RoutedEventArgs e)
    {
        _Root.RequestedTheme = ElementTheme.Light;
        _Root.Background = new SolidColorBrush(Colors.White);
    }

关于如何进行这项工作的任何建议?

0 个答案:

没有答案