Перезагрузить проверку орфографии UWP RichEditBox - PullRequest
0 голосов
/ 18 июня 2020

У меня есть RichEditBox и ToggleButton, которые переключают проверку орфографии RichEditBox. По умолчанию проверка орфографии отключена. Поэтому, когда я печатаю какую-то чушь в редакторе, конечно, она не подчеркивается красным. Когда я нажимаю кнопку после этого и вставляю еще несколько символов rubbi sh, только недавно вставленный материал помечается как неправильный, но не символы, вставленные до включения проверки орфографии.

Следовательно, я ищу возможность «перезагрузить» проверку орфографии, чтобы было проверено все содержимое RichEditBox.


Моя проблема в изображения:

Шаг 1: Вставка случайного мусора sh с отключенной проверкой правописания

[enter image description here]

Шаг 2: Включение проверки орфографии и ввод того же снова символы:

[enter image description here]


<Page
    x:Class="FontSizeTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:FontSizeTest"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <ToggleButton x:Name="SpellCheckingButton" Grid.Row="0" Checked="HandleSpellCheckingButton_Checked">Spell Checking</ToggleButton>
        <RichEditBox x:Name="Editor" IsSpellCheckEnabled="False" Grid.Row="1"></RichEditBox>
    </Grid>
</Page>



public sealed partial class MainPage : Page {
    public MainPage() {
        this.InitializeComponent();
    }

    private void HandleSpellCheckingButton_Checked(object sender, RoutedEventArgs e) {
        bool isChecked = ((ToggleButton) sender).IsChecked.GetValueOrDefault();
        Editor.IsSpellCheckEnabled = isChecked;
    }
}

1 Ответ

1 голос
/ 19 июня 2020

Перезагрузить проверку орфографии UWP RichEditBox

Проблема в том, что событие Checked возникает только в состоянии ToggleButton проверено, вы просто устанавливаете Editor.IsSpellCheckEnabled как true, но не редактируете его обратно к false, когда ToggleButton снимите отметку. Мы предлагаем вам изменить свойство IsSpellCheckEnabled в событии щелчка ToggleButton, как показано ниже.

private void SpellCheckingButton_Click(object sender, RoutedEventArgs e)
{
    bool isChecked = ((ToggleButton)sender).IsChecked.GetValueOrDefault();
    Editor.IsSpellCheckEnabled = isChecked;
}

xaml

<ToggleButton
    x:Name="SpellCheckingButton"
    Grid.Row="0"
    Click="SpellCheckingButton_Click"  
    >
    Spell Checking
</ToggleButton>

Update

Когда я нажимаю кнопку после этого и вставляю еще несколько sh символов rubbi, только недавно вставленный материал помечается как неправильный, но не символы, вставленные до включения проверки орфографии.

Я неправильно понял ваш вопрос, это по умолчанию. Если вы хотите перепроверить весь контент, нам нужно переустановить его, как показано ниже.

private void SpellCheckingButton_Click(object sender, RoutedEventArgs e)
{
    bool isChecked = ((ToggleButton)sender).IsChecked.GetValueOrDefault();
    Editor.IsSpellCheckEnabled = isChecked;
    var temp = string.Empty;
    Editor.Document.GetText(TextGetOptions.FormatRtf, out temp);
    Editor.Document.SetText(TextSetOptions.FormatRtf, string.Empty);
    Editor.Document.SetText(TextSetOptions.FormatRtf, temp);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...