Многоязычный spellcheck на WPF richtextbox

Я должен включить spellcheck для richtextbox и установить язык на один, пользователь выбрал от выпадающего. На данный момент я просто тестирую его путем создания richtextbox в xaml и обеспечения языка xaml атрибуту языка.

Я считал два различных ресурса, и каждый говорит, что я должен установить атрибут языка, и другой говорит, что я должен установить атрибут xml:lang. Ни один, кажется, не работает. Я попытался установить любой один на "es" для испанского языка, и я также попытался установить обоих на "es". Я также судил французский язык путем установки их на "FR франка" без успеха. Единственная вещь, которая происходит, состоит в том, что английские слова не отмечены, но другие слова языка отмечены, как написано c орфографическими ошибками.

Я также считал, что должен изменить язык клавиатуры. Это было бы проблемой для моего приложения, поскольку язык в рамках приложения должен быть переключен на лету, так наличие конечного пользователя переходят к их настройкам клавиатуры именно так spellcheck, будет работать, проблема. Однако я изменил свои настройки клавиатуры и проверяю правописание, все еще не работает правильно. На этот раз это ничего не отмечает как с орфографической ошибкой, даже написало английские слова c орфографическими ошибками.

Что я пропускаю?

Править: некоторые ссылки на мои ссылки выше http://msdn.microsoft.com/en-us/library/system.windows.controls.spellcheck (v=VS.100) .aspx

http://www.dev102.com/2008/03/25/customize-spellcheck-on-wpf-text-controls/

http://books.google.com/books?id=clLc5BBHqRMC&pg=PA121&lpg=PA121&dq=C%23+wpf+enable+spellcheck&source=bl&ots=_r59pZRDjP&sig=yHMBc39EHKK5gaRMzxlBaEsY890&hl=en&ei=oXnIS8zWH4G88gaq48yGBw&sa=X&oi=book_result&ct=result&resnum=6&ved=0CBMQ6AEwBQ#v=onepage&q&f=false

5
задан Jon Seigel 26 April 2010 в 13:28
поделиться

2 ответа

Из форума MSDN:

«Во-первых, какие именно компоненты нам нужны для WPF, чтобы включить проверку орфографии для английского / испанского / немецкого / французского языков?

NetFx 3.5 SP1

Windows XP (языковые пакеты); Windows Vista (из коробки); Windows 7 (из коробки)

NetFx 4 Windows XP (языковые пакеты); Windows Vista (языковые пакеты); Windows 7 (языковые пакеты)

Здесь «языковые пакеты» означают, что вам необходимо установить соответствующие. Языковые пакеты .NET Framework.Например, если вы хотите включить проверку орфографии на испанском языке в Windows XP и .NET Framework 3.5 с пакетом обновления 1 (SP1), установите языковой пакет для испанского языка .NET Framework 3.5 с пакетом обновления 1. И если вы хотите включить проверку орфографии на немецком языке. NET Framework 4.0, затем вы устанавливаете немецкий языковой пакет .NET Framework 4.0.

Языковые пакеты для .NET Framework 4.0 будут доступны в ближайшее время.

Из коробки вы не должны ничего делать, а заклинание проверить для четырех языков доступны автоматически.

Если вы развертываете приложение через ClickOnce, вы можете включить соответствующие языковые пакеты в качестве предварительных условий.Для получения справки о включении языковых пакетов в развертывание ClickOnce вы можете использовать ClickOnce и форум проектов установки и развертывания.

Во-вторых, как элемент управления RichTextBox определяет язык для проверки?

Если элемент Run помечен определенным языком, проверка орфографии будет использовать его:

uno dos tres cuatrro {{1} } one two three fourr

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

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/06a2cc61-f2ae-4534-b35a-6c676bc2bcb2/?prof=required

1
ответ дан 15 December 2019 в 06:21
поделиться

Я не уверен, в чем проблема для вас, но это определенно работает на моем компьютере:

    <StackPanel>
        <TextBox SpellCheck.IsEnabled="True"
            Language="{Binding SelectedItem.Content, ElementName=lg, ConverterCulture=en-us}">

            Turtle tortue tortuga Schildkröte 

        </TextBox>
        <ComboBox Name="lg">
            <ComboBoxItem Selector.IsSelected="True">en-US</ComboBoxItem>
            <ComboBoxItem>fr-FR</ComboBoxItem>
            <ComboBoxItem>es-ES</ComboBoxItem>
            <ComboBoxItem>de-DE</ComboBoxItem>
        </ComboBox>
    </StackPanel>

Правка работает в версии 3.5, а не в 4.0. Интересно.

В версии 3.5 все поддерживаемые словари работают нормально. В 4.0 WPF проверка орфографии работает только для английского языка.

Edit 2

Кажется, что он работает только на 3.5, потому что я нахожусь в Windows 7, поэтому мне не нужны языковые пакеты.

Другая проблема заключается в том, что это работает только потому, что текст предустановлен. Для любого текста, который вы вводите, будет выбран язык из текущих пользовательских настроек.

Думаю, решением вашей проблемы будет обход всего контента и изменение его свойств языка каждый раз, когда пользователь выбирает язык.

2
ответ дан 15 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: