WPF: Adding speller to custom context menu
One of the interesting features in Editing is the speller and it works really well. :) One of the ineteresting scenarios when it comes to speller is to add the speller choices to a custom context menu. The speller choices would have to be added in the ContextMenuOpening event handler as below:
spellingError = textBox.GetSpellingError(caretIndex); 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 = textBox; textBox.ContextMenu.Items.Insert(cmdIndex, mi); cmdIndex++; } Separator separatorMenuItem1 = new Separator(); textBox.ContextMenu.Items.Insert(cmdIndex, separatorMenuItem1); cmdIndex++; MenuItem ignoreAllMI = new MenuItem(); ignoreAllMI.Header = "Ignore All"; ignoreAllMI.Command = EditingCommands.IgnoreSpellingError; ignoreAllMI.CommandTarget = textBox; textBox.ContextMenu.Items.Insert(cmdIndex, ignoreAllMI); cmdIndex++; Separator separatorMenuItem2 = new Separator(); textBox.ContextMenu.Items.Insert(cmdIndex, separatorMenuItem2);}
Thats all there is to it. Its the same for RichTextBox except for the first line where you get the spellingError - rtb.GetSpellingError(rtb.CaretPosition)
The complete sample code is attached so that you can see it working in all glory :)..
Comments
- Anonymous
November 21, 2006
The comment has been removed - Anonymous
November 21, 2006
currently we do not support it in V1