Я должен включить 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/
Из форума 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
Во время выполнения проверка орфографии использует язык ввода, который использовался для ввода слов, как описано в предыдущем посте.
Я не уверен, в чем проблема для вас, но это определенно работает на моем компьютере:
<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, поэтому мне не нужны языковые пакеты.
Другая проблема заключается в том, что это работает только потому, что текст предустановлен. Для любого текста, который вы вводите, будет выбран язык из текущих пользовательских настроек.
Думаю, решением вашей проблемы будет обход всего контента и изменение его свойств языка каждый раз, когда пользователь выбирает язык.