【发布时间】:2020-05-29 15:10:44
【问题描述】:
我正在考虑更改我的拼写检查实现以使用 Syncfusion 拼写检查。我大部分时间都在工作,但有一个问题和一个问题。首先是我的测试应用程序代码。我按照示例代码here 进行操作并使其正常工作,然后我想将其应用于同一窗口上的多个文本框,就像在我的实际应用程序中那样。最后我尝试激活自定义字典。
这是我的应用窗口 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”选项。我还尝试只设置属性而不实际创建文件,以防它想创建文件本身但没有更改。最后我尝试了相对路径和绝对路径,但也没有改变。关于如何激活自定义词典,我有什么遗漏吗?
【问题讨论】:
标签: c# wpf spell-checking syncfusion