Не могу изменить язык ввода RichTextBox (WPF) - PullRequest
2 голосов
/ 15 сентября 2010

Я пытаюсь добавить на панель инструментов RichEditBox кнопку для переключения языков, как в MS Word.Кажется, я не могу сделать эту работу.Когда я использую клавиатуру (alt + shift), я могу без проблем переключаться между ивритом и английским, но приведенный ниже код (и многие другие варианты, которые я пробовал) не работает.Последняя закомментированная строка тоже не сработала.Просто чтобы быть ясно, нет никаких исключений, и ничто не терпит неудачу.Выбранный текст в RichTextBox меняет направление потока на RTL - но язык остается английским.Любая идея?

Спасибо, Yariv

Отредактировано : Я нашел похожую проблему ЗДЕСЬ и, кажется, автор нашел решениеего проблема, но я не понимаю решение ...

    private void OnChangeLanguage(object sender, RoutedEventArgs e)
    {
        RichTextBox textBox = GetTemplateChild("innerRTB") as RichTextBox;
        if (textBox == null)
            return;

        string langString = CultureInfo.CurrentCulture.IetfLanguageTag;
        XmlLanguage newXmlLanguage = XmlLanguage.GetLanguage(langString);

        TextRange selectionRange = new TextRange(textBox.Selection.Start, textBox.Selection.End);
        selectionRange.ApplyPropertyValue(FlowDocument.FlowDirectionProperty, FlowDirection.RightToLeft);
        selectionRange.ApplyPropertyValue(FlowDocument.LanguageProperty, "he-il");
        // selectionRange.ApplyPropertyValue(FlowDocument.LanguageProperty, newXmlLanguage);
    }
...