Я смотрю, как изменить реализацию проверки орфографии на использование проверки орфографии Syncfusion. У меня это в основном работает, но есть один вопрос и одна проблема. Сначала мой код для тестового приложения. Я следовал примеру кода здесь и получил его, затем я хотел применить его к нескольким текстовым полям в одном окне, как это будет в моем реальном приложении. Последний раз я пытался активировать пользовательский словарь.
Вот мой код XAML для окна приложения:
<Window x:Class="SyncfusionWpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Icon="App.ico">
<Grid>
<StackPanel>
<TextBox Loaded="tb_Loaded" />
<TextBox Loaded="tb_Loaded" />
<TextBox Loaded="tb_Loaded" />
</StackPanel>
</Grid>
Вот код:
using System.Windows;
using System.Windows.Controls;
using Syncfusion.Windows.Controls;
namespace SyncfusionWpfApp1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
}
void tb_Loaded(object sender, RoutedEventArgs e)
{
var spellChecker = new SfSpellChecker
{
CustomDictionaryPath =
@"C:\Users\sfaust\Source\Repos\SFTest1\SyncfusionWpfApp1\SyncfusionWpfApp1\bin\Debug\testdictionary.txt"
};
var textBoxSpellEditor = new TextBoxSpellEditor((TextBox)sender);
spellChecker.PerformSpellCheckUsingContextMenu(textBoxSpellEditor);
}
}
}
Хорошо, так что первый вопрос. Когда я перешел к нескольким элементам управления, казалось, что это не сработало, если я не создал новую проверку орфографии и новый класс IEditorProperties (класс TextBoxSpellEditor) для каждого текстового поля и применил его (следовательно, инициализировал его в загруженном выше, а не в окне, как пример). Ну, это, кажется, работает, это кажется довольно неэффективным. В моем приложении может быть довольно много текстовых полей, так как они находятся в древовидном представлении элементов, поэтому я немного обеспокоен эффективностью создания сотен экземпляров проверки правописания (хотя я не пробовал стресс-тест может быть я обеспокоен излишне). Это правильный способ сделать это?
Второй вопрос - скорее проблема. Я не вижу ничего, указывающего на то, что пользовательский словарь работает. Я создал файл по указанному пути и поместил в него несколько случайных «слов», которые он идентифицировал (правильно) как неправильно написанные, но даже после помещения их в этот файл и установки свойства пути к словарю он все равно идентифицирует их как ошибочные. У меня также нет опции «AddToDictionary» в контекстном меню. Я также попытался установить свойство без фактического создания файла на тот случай, если он хочет создать сам файл, но без изменений. В последний раз я пробовал как относительные, так и абсолютные пути, но и без изменений. Что-то мне не хватает, как активировать пользовательский словарь?