WPF TextBox的SpellCheck功能
来源:互联网 发布:知乎怎么更新答案 编辑:程序博客网 时间:2024/05/21 17:24
看一看MSDN的例子是最好的:
http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.controls.primitives.textboxbase.spellcheck(v=vs.100).aspx
给例子做一下注释:
public MainWindow() { InitializeComponent(); myTextBox.ContextMenu = GetContextMenu();//初始化右键菜单(上下文菜单) } void tb_ContextMenuOpening(object sender, RoutedEventArgs e) { int caretIndex, cmdIndex; SpellingError spellingError; myTextBox.ContextMenu = GetContextMenu();//获取默认菜单 caretIndex = myTextBox.CaretIndex;//光标位置 cmdIndex = 0;//菜单项序号 spellingError = myTextBox.GetSpellingError(caretIndex);//获取当前光标处错误,如果没有拼写错误则为null if (spellingError != null) { //对拼写错误的每一个推荐正确拼写, 建立一个菜单项 foreach (string str in spellingError.Suggestions) { MenuItem mi = new MenuItem(); mi.Header = str;//菜单项的文本内容 mi.FontWeight = FontWeights.Bold; mi.Command = EditingCommands.CorrectSpellingError;//菜单项点击执行的命令,是一个更改当前光标处拼写错误的命令. mi.CommandParameter = str;//这个命令的参数 mi.CommandTarget = myTextBox;//这个命令执行的目标文本框 myTextBox.ContextMenu.Items.Insert(cmdIndex, mi);//把该项加入右键菜单的序号位置 cmdIndex++;//序号自增 } Separator separatorMenuItem1 = new Separator(); myTextBox.ContextMenu.Items.Insert(cmdIndex, separatorMenuItem1);//插入一个分割横线 cmdIndex++; MenuItem ignoreAllMI = new MenuItem();//新建一个菜单项,功能是忽略所有拼写错误 ignoreAllMI.Header = "Ignore All"; ignoreAllMI.Command = EditingCommands.IgnoreSpellingError; ignoreAllMI.CommandTarget = myTextBox; myTextBox.ContextMenu.Items.Insert(cmdIndex, ignoreAllMI); cmdIndex++; Separator separatorMenuItem2 = new Separator(); myTextBox.ContextMenu.Items.Insert(cmdIndex, separatorMenuItem2);//再插入一个分割线,之后就是默认的菜单项. } } private ContextMenu GetContextMenu() { ContextMenu cm = new ContextMenu(); //Can create STATIC custom menu items if exists here... MenuItem m1, m2, m3, m4; m1 = new MenuItem(); m1.Header = "File";//m1.Command = ApplicationCommands.Save; m2 = new MenuItem(); m2.Header = "Save"; m3 = new MenuItem(); m3.Header = "SaveAs"; m4 = new MenuItem(); m4.Header = "Recent Files"; //Can add functionality for the custom menu items here... cm.Items.Add(m1); cm.Items.Add(m2); cm.Items.Add(m3); cm.Items.Add(m4); return cm; }
可以在SpellCheck的CustomDictionaries里定义用户词典, 拼写检查会忽略这些词.
http://www.cnblogs.com/gnielee/archive/2010/05/04/wpf4-spellcheck.html 这篇文章给出了一个详细例子.
接着是研究SpellingError类,看看能不能玩出什么花样.
0 0
- WPF TextBox的SpellCheck功能
- wpf 关于textbox的spellcheck无效
- WPF SpellCheck
- solr5.3的spellcheck功能
- solr spellcheck 功能
- WPF Textbox的使用
- WPF 的圆角TextBox和有水印的TextBox
- WPF DatePicker 的textbox的焦点
- textarea的拼写检查,spellcheck
- WPF TextBox绑定数据的简单应用
- 带清空按钮TextBox的实现(WPF)
- WPF有水印的TextBox(WaterMark)
- WPF的TextBox水印效果详解
- 生成textBox功能的实现
- WPF 自定义TextBox(WPF带图片,占位符,清除按钮的TextBox)改造版
- wpf学习笔记---TextBox
- [WPF]Watermask TextBox Style
- WPF TextBox 验证输入
- 设定UISegmentControl的文字属性
- VS2010的一些细节点(1)--VC编译器、V90、v100的含义
- 利用Ajax 、iframe 在当前页面下载
- One sql performance tuning
- Jquery 页面元素点击统计
- WPF TextBox的SpellCheck功能
- 元素周期表顺口溜(转载)
- php+jquery插件imgAreaSelect图片裁剪保存
- 系统分析之二 需求获取的调查研究技术
- 【黑马程序员】Java基础加强14:JDK1.5枚举
- django: 开发服务器下admin界面没有css
- ASIHTTPRequest 详解
- 系统分析之三 使用用例建模系统需求
- 山水画