关于 syncfusion-wpf-spellchecker
为 WPF 开发者提供 Syncfusion SfSpellChecker 集成指南,可为文本编辑控件添加拼写检查。它涵盖对话框和上下文菜单建议、多语言词典、自定义词条及忽略规则。
主要功能
- 01通过对话框或上下文菜单检查拼写
- 02提供实时错误标记和修改建议
- 03支持多语言及多种词典格式
- 04添加自定义词典和词条
- 05配置 URL、邮箱等忽略规则
适用场景
- 01为 WPF 文本编辑器添加拼写检查
- 02构建支持多语言词典的文档编辑器
- 03为专业领域文本添加自定义词条
- 04检查邮件或 HTML 内容并忽略特定文本
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ syncfusion/ wpf-ui-components-skills --skill syncfusion-wpf-spellchecker安装后在 Claude Code 中输入/syncfusion-wpf-spellchecker确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/customization.mddictionary-support.mdgetting-started.mdignore-options.mdspell-check-methods.md详细介绍
实现 Syncfusion WPF 拼写检查器
SfSpellChecker 提供简单直观的界面,可检查 WPF 文本编辑器控件中的拼写错误。它通过对话框和上下文菜单为拼错的单词提供建议,支持多种语言/区域性、自定义词典以及多种忽略选项。
何时使用此技能
在以下情况下使用此技能:
- 为 WPF TextBox、RichTextBox 或其他文本编辑器控件添加拼写检查功能
- 实现基于对话框或上下文菜单的拼写检查
- 在拼写检查中支持多种语言和区域性
- 添加自定义词典(Hunspell、Ispell 或 OpenOffice 格式)
- 配置电子邮件、URL、HTML 标签、大小写混合单词等的忽略规则
- 为用户提供实时拼写建议
- 使用主题自定义拼写检查器的外观
- 处理拼写检查完成事件
组件概览
控件: SfSpellChecker (Syncfusion.Windows.Controls.SfSpellChecker)
平台: WPF
命名空间: Syncfusion.Windows.Controls
程序集: Syncfusion.SfSpellChecker.WPF
主要功能:
- 带建议列表的对话框式拼写检查
- 右键单击错误单词时显示上下文菜单建议
- 支持多种语言和自定义词典
- 忽略特殊文本模式
- 支持自定义单词词典
- 实时突出显示错误
- 替换、全部忽略、添加到词典等操作
文档与导航指南
入门
📄 阅读: references/getting-started.md
- 安装和程序集部署
- 在应用程序中添加 SfSpellChecker
- 将拼写检查器附加到 TextBox
- 使用对话框进行首次拼写检查
- 设置上下文菜单
- 启用/禁用拼写检查
- 以编程方式获取建议
拼写检查方法
📄 阅读: references/spell-check-methods.md
- 基于对话框的拼写检查
- 基于上下文菜单的建议
- PerformSpellCheckUsingDialog 方法
- 突出显示错误单词
- 替换和忽略操作
- 添加到词典功能
忽略选项
📄 阅读: references/ignore-options.md
- 忽略电子邮件地址
- 忽略 URL 和互联网地址
- 忽略 HTML 标签
- 忽略大小写混合的单词
- 忽略全大写单词
- 忽略字母数字单词
- 配置示例
词典支持
📄 阅读: references/dictionary-support.md
- 默认英语词典
- 多语言拼写检查
- Hunspell 词典格式
- Ispell 词典格式
- OpenOffice 词典格式
- 添加自定义词典
- 自定义单词列表
- 在运行时切换区域性
- DictionaryCollection 管理
自定义与主题
📄 阅读: references/customization.md
- SpellCheckCompleted 事件
- 限制显示完成消息框
- 使用 SfSkinManager 支持主题
- ThemeStudio 自定义
- 外观选项
快速入门
使用对话框进行基本设置
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf">
<Grid>
<StackPanel>
<TextBox
Text="Ths is a sampel text with speling errors."
Name="textbox"
TextWrapping="Wrap">
<syncfusion:SfSpellChecker.SpellChecker>
<syncfusion:SfSpellChecker
x:Name="spellChecker"
EnableSpellCheck="True"/>
</syncfusion:SfSpellChecker.SpellChecker>
</TextBox>
<Button
Content="Spell Check"
Click="SpellCheck_ButtonClick"
HorizontalAlignment="Center"/>
</StackPanel>
</Grid>
</Window>
// Code-behind
private void SpellCheck_ButtonClick(object sender, RoutedEventArgs e)
{
spellChecker.PerformSpellCheckUsingDialog();
}
使用上下文菜单快速设置
<syncfusion:SfSpellChecker
x:Name="spellChecker"
EnableSpellCheck="True"
EnableContextMenu="True"/>
用户可以右键单击错误单词(带红色下划线)查看建议。
常见模式
模式 1:使用对话框进行基本拼写检查
// Create spell checker instance
SfSpellChecker spellChecker = new SfSpellChecker();
spellChecker.EnableSpellCheck = true;
// Attach to TextBox
SfSpellChecker.SetSpellChecker(textbox, spellChecker);
// Open spell check dialog
spellChecker.PerformSpellCheckUsingDialog();
模式 2:带忽略选项的上下文菜单
SfSpellChecker spellChecker = new SfSpellChecker();
spellChecker.EnableSpellCheck = true;
spellChecker.EnableContextMenu = true;
// Configure ignore options
spellChecker.IgnoreUrl = true;
spellChecker.IgnoreEmailAddress = true;
spellChecker.IgnoreUpperCaseWords = true;
SfSpellChecker.SetSpellChecker(textbox, spellChecker);
模式 3:多语言支持
// Create culture-specific spell checker
CultureInfo culture = new CultureInfo("fr-FR");
SfSpellChecker spellChecker = new SfSpellChecker();
// Add French dictionary
spellChecker.Dictionaries = new DictionaryCollection();
spellChecker.Dictionaries.Add(
new HunspellDictionary()
{
Culture = culture,
GrammarUri = new Uri("/MyApp;component/Dictionaries/fr-FR.aff", UriKind.Relative),
DictionaryUri = new Uri("/MyApp;component/Dictionaries/fr-FR.dic", UriKind.Relative)
}
);
spellChecker.Culture = culture;
SfSpellChecker.SetSpellChecker(textbox, spellChecker);
模式 4:自定义词典
// Add custom words dictionary
Uri customDictUri = new Uri(Directory.GetCurrentDirectory() +
@"\Dictionaries\CustomWords.txt", UriKind.Absolute);
spellChecker.Dictionaries.Add(
new CustomDictionary()
{
Culture = new CultureInfo("en-US"),
DictionaryUri = customDictUri
}
);
模式 5:处理拼写检查完成事件
spellChecker.SpellCheckCompleted += (sender, e) =>
{
// Suppress default message box
(e as SpellCheckCompletedEventArgs).ShowMessageBox = false;
// Custom completion logic
MessageBox.Show("Spell check completed!", "Done");
};
关键属性
| 属性 | 类型 | 说明 |
|---|---|---|
EnableSpellCheck | bool | 启用/禁用拼写检查(默认值:true) |
EnableContextMenu | bool | 启用上下文菜单建议(默认值:true) |
Culture | CultureInfo | 拼写检查所用的区域性 |
Dictionaries | DictionaryCollection | 词典集合 |
IgnoreUrl | bool | 忽略网络地址 |
IgnoreEmailAddress | bool | 忽略电子邮件地址 |
IgnoreHtmlTags | bool | 忽略 HTML 标签 |
IgnoreMixedCaseWords | bool | 忽略大小写混合的单词(例如,AbCDeFH) |
IgnoreUpperCaseWords | bool | 忽略全大写的单词 |
IgnoreAlphaNumericWords | bool | 忽略包含数字的单词 |
关键方法
| 方法 | 说明 |
|---|---|
PerformSpellCheckUsingDialog() | 打开拼写检查对话框 |
GetSuggestions(string word) | 获取拼写错误单词的建议列表 |
GetPhoneticWords(string word) | 获取单词的语音建议 |
GetAnagrams(string word) | 获取单词的变位词建议 |
常见用例
- 带拼写检查的文本编辑器 - 为 WPF 文本编辑器添加全面的拼写检查功能
- 多语言文档编辑器 - 使用特定区域性的词典支持多种语言
- 自定义领域词典 - 添加特定行业或公司的术语
- 电子邮件客户端 - 使用忽略电子邮件/URL 选项进行拼写检查
- HTML 编辑器 - 忽略 HTML 标记的同时进行拼写检查
- 表单验证 - 验证文本输入字段中的拼写错误
- 无障碍文本输入 - 提供上下文菜单以便轻松更正错误
示例应用
GitHub 示例:WPF SpellChecker 示例
评论
支持 Markdown