WPF 4 单词拼写检查(SpellCheck)
原文:WPF 4 单词拼写检查(SpellCheck)

在WPF中 Textbox 和RichTextBox 控件都内置了拼写检查属性,但该属性目前默认仅支持English、Spanish、French 和German 四种语言。

·        #LID 1033 – English
·        #LID 3082 – Spanish
·        #LID 1031 – German
·        #LID 1036 - French

使用拼写检查功能时,只需将SpellCheck.IsEnabled 设为True 即可。

<Grid><TextBox SpellCheck.IsEnabled="True" />
</Grid>

拼写错误的单词下方会显示红色波浪线,右击单词将提示相关纠正单词。

下面示例通过使用SpellingError 类将纠正单词获取到ListBox 中供使用者参考。

<StackPanel HorizontalAlignment="Center" Margin="20"><TextBox x:Name="txtBox" SpellCheck.IsEnabled="True" MouseRightButtonUp="txtBox_MouseRightButtonUp" /><ListBox x:Name="listBox" ItemsSource="{Binding}"><ListBox.ItemTemplate><DataTemplate><TextBlock Text="{Binding}"/></DataTemplate></ListBox.ItemTemplate></ListBox>
</StackPanel>
private void txtBox_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
{int catatPos = txtBox.CaretIndex;SpellingError error = txtBox.GetSpellingError(catatPos);if (error != null){foreach (string suggession in error.Suggestions){listBox.Items.Add(suggession);}}
}

在错误单词后面点击鼠标右键,便会将纠正单词写入下方列表中。

在WPF 4 中SpellCheck 增加了CustomDictionaries 功能,可以使开发人员添加默认语言中未包含或被忽略的单词,以便进行自定义单词拼写检查。上例录入的文字中“Micrsoft Visual Stvdio WPF 4” ,其实我们认为“WPF” 并不是拼写错误,只是由于默认的四种语言中并不存在“WPF”这个单词,因此我们可以通过自定义词典将“WPF”设置为可识别单词。

首先打开Notepad 编写词典文件(.lex),在文件中按以下格式编写单词内容:

#LID 1033
Word1
Word2
Word3

文档中的第一行为词典适用的语言种类(英语),若不编写该行意为适用于所有语言,其他语言Locale ID 信息可参考这里。结合本篇实例我们只需在文档写入“WPF”单词即可,将编辑好的词典文件加入项目中:

为TextBox 添加自定义词典:

<Window x:Class="WPFTextTest.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:sys="clr-namespace:System;assembly=System"><StackPanel HorizontalAlignment="Center" Margin="20"><TextBox x:Name="txtBox" SpellCheck.IsEnabled="True"><SpellCheck.CustomDictionaries><sys:Uri>pack://application:,,,/Lexicon/MSWord.lex</sys:Uri></SpellCheck.CustomDictionaries></TextBox>
    </StackPanel>
</Window>

运行程序输入同样内容,可见“WPF”已经不被标识为拼写错误:

posted on 2018-08-08 14:43 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/9442694.html

WPF 4 单词拼写检查(SpellCheck)相关推荐

  1. 朴素贝叶斯实战应用---单词拼写检查器(结合html直观展示)

    博文写于2020-05-10,于2020-07-07再次编辑 1.一个小小的引子: 写这篇博文的时候,日子有点特殊,啥日子大家应该都知道.用一篇某高二学生母亲节的英语作文,先祝天下所有母亲身体健康,母 ...

  2. 列表根据下标取值_散列表(上):Word文档中的单词拼写检查功能是如何实现的?...

    Word这种文本编辑器你平时应该经常用吧,那你有没有留意过它的拼写检查功能呢?一旦我们在Word里输入一个错误的英文单词,它就会用标红的方式提示"拼写错误".Word的这个单词拼写 ...

  3. 18 | 散列表(上):Word文档中的单词拼写检查功能是如何实现的?

    问题引入 在 Word 里输入一个错误的英文单词,它就会用标红的方式提示"拼写错误",Word 文本编辑器的拼写检查功能是如何实现的呢?散列表(Hash Table) 散列表 散列 ...

  4. 【散列表(哈希表) Hash Table(上)】:Word文档中的单词拼写检查功能是如何实现的?

    Word 这种文本编辑器你平时应该经常用吧,那你有没有留意过它的拼写检查功能呢?一旦我们在 Word 里输入一个错误的英文单词,它就会用标红的方式提示"拼写错误".Word 的这个 ...

  5. 散列表(上):Word文档中的单词拼写检查功能是如何实现的?

    [思考题]:在Word里面输入一个错误的英文单词,它会用标红的方式提示"拼写错误".Word的这个单词拼写检查功能,虽然很小但是却非常实用.你有没有想过,这个功能是如何实现的? 1 ...

  6. idea中取消单词拼写检查波浪线

    取消单词拼写检查的4种方法,任选一种即可 1.快捷添加单词到词典 2.词典管理 3.修改主题的设置 4.修改全局设置 1.快捷添加单词到词典 alt + enter,选择 Save '' to dic ...

  7. 散列表(上):Word 文档中单词拼写检查功能是如何实现的?

    本文是学习算法的笔记,<数据结构与算法之美>,极客时间的课程 在平时我们使用Word的时候,输入一个错误的单词,它就会用标红的方式提示"拼写错误".Word的这个单词拼 ...

  8. 18散列表(上):Word文档中的单词拼写检查功能是如何实现的

    文章目录 1.散列思想 2. 散列函数 3. 散列冲突 4. 解答开篇 问题:Word的这个单词拼写检查功能是如何实现的? 1.散列思想 散列表:Hash table. **散列表利用数组支持按照下标 ...

  9. windows下使用aspell开启emacs的单词拼写检查功能

    第一步,你需要下载aspell安装文件和至少一个字典,下载地址为http://aspell.net/win32/. 下载之后,分别安装aspell和字典. 需要注意的是,在64位的WIN7下,&quo ...

最新文章

  1. 盛会再临,2018中国大数据技术大会(BDTC)首曝日程及议题
  2. 386个Linux发行版本中 你用过Ubuntu吗?
  3. dcp9030cdn定影_兄弟Brother DCP-9030CDN打印机驱动(修复DCP-9030CDN打印机连接故障)V1.0 正式版...
  4. 苹果Mac Studio 3月18日发售 但法国一用户已提前收货
  5. IdentityServer(14)- 通过EntityFramework Core持久化配置和操作数据
  6. 叫醒你的是闹钟,还是梦想?
  7. 全球第一开源ERP Odoo操作手册 数据库简介
  8. 数据总线,地址总线,控制总线
  9. java生成pdf旋转_Java 设置PDF页面大小/旋转、纸张方向、页边距
  10. androidx 填坑记
  11. 神秘的古文明 ———— 埃及文化
  12. yum的配置文件yum.conf详解
  13. 其他:Pycharm 常用快捷键
  14. 19级爪哇程序设计新手赛(题解)
  15. 怎么用计算机来玩反恐精英,你第一次去网吧是为了玩什么游戏?网友:反恐精英一直到英雄联盟...
  16. 无线充电---无线电能传输
  17. memcached命令行memcached数据导入和导出PHP链接memcached memcach
  18. 智慧煤矿三维可视化决策系统平台(数字孪生)-解决方案开发案例
  19. 无监督学习 | KMeans之Sklearn实现:电影评分聚类
  20. 将不同数据存储到数据库中_如何将数据存储在兔子洞中

热门文章

  1. 使用cmake重写live555工程-附源码和视频教程
  2. linux_unix编程手册-信号概述signal函数
  3. 高级C语言教程编码风格
  4. 【CyberSecurityLearning 63】CSRF攻击
  5. 计算机的启动过程———《x86汇编语言:从实模式到保护模式》读书笔记补遗01
  6. Java的Map接口,以及Collection和Collections的区别
  7. C语言模拟实现(一)----- 优先权抢占式时间片调度算法
  8. dijkstra+堆优化
  9. 图论—割点zcmu2095
  10. 7个相同小球4个不同盒子_如何用天平称三次找出12个外观相同小球中仅有的一个次品?次品质量与正品不同。...