Это не слишком сложно переописать контекстное RichTextBox меню с орфографическими предложениями, вырезание, вставка и т.д.
Подключайте событие открытия контекстного меню следующим образом:
AddHandler(RichTextBox.ContextMenuOpeningEvent, new ContextMenuEventHandler(RichTextBox_ContextMenuOpening), true);
В пределах сборки обработчика событий контекстное меню по мере необходимости. Вы можете обновить существующие пункты меню контекстного меню со следующим:
private IList<MenuItem> GetSpellingSuggestions()
{
List<MenuItem> spellingSuggestions = new List();
SpellingError spellingError = myRichTextBox.GetSpellingError(myRichTextBox.CaretPosition);
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 = myRichTextBox;
spellingSuggestions.Add(mi);
}
}
return spellingSuggestions;
}
private IList<MenuItem> GetStandardCommands()
{
List<MenuItem> standardCommands = new List();
MenuItem item = new MenuItem();
item.Command = ApplicationCommands.Cut;
standardCommands.Add(item);
item = new MenuItem();
item.Command = ApplicationCommands.Copy;
standardCommands.Add(item);
item = new MenuItem();
item.Command = ApplicationCommands.Paste;
standardCommands.Add(item);
return standardCommands;
}
Если есть орфографические ошибки, вы можете создать Игнорировать все с:
MenuItem ignoreAllMI = new MenuItem();
ignoreAllMI.Header = "Ignore All";
ignoreAllMI.Command = EditingCommands.IgnoreSpellingError;
ignoreAllMI.CommandTarget = textBox;
newContextMenu.Items.Add(ignoreAllMI);
Добавить разделители по мере необходимости. Добавьте их в элементы нового контекстного меню, а затем добавьте новые блестящие элементы MenuItems.
Я собираюсь продолжить поиск контекстного меню, поскольку это имеет отношение к чему-то, над чем я буду работать в ближайшем будущем.
Спасибо, Доннеле. Я решил, что это, вероятно, придет к повторной реализации. Спасибо за советы о том, как это сделать! – dmo 2008-10-20 18:44:49