O vb yazım tavsiyeleri Kes, Yapıştır ile RichTextBox içerik menüsünü yeniden gerçeklemek çok zor değil
aşağıdaki gibi içerik menüsü açma olayı bağlayın: olay işleyicisi yapı içinde
AddHandler(RichTextBox.ContextMenuOpeningEvent, new ContextMenuEventHandler(RichTextBox_ContextMenuOpening), true);
İhtiyacınız olan içerik menüsü. Aşağıdaki mevcut bağlam menüsünü menü öğelerini yeniden oluşturabilirsiniz: yazım hatası yoksa
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;
}
, Ignore All ile oluşturabilirsiniz: gerektiği gibi
MenuItem ignoreAllMI = new MenuItem();
ignoreAllMI.Header = "Ignore All";
ignoreAllMI.Command = EditingCommands.IgnoreSpellingError;
ignoreAllMI.CommandTarget = textBox;
newContextMenu.Items.Add(ignoreAllMI);
ayırıcılar ekleyin. Bunları yeni içerik menüsünün öğelerine ekleyin ve ardından parlak yeni MenuItems'inizi ekleyin.
Güncel bağlam menüsünü elde etmenin bir yolunu aramaya devam edeceğim, çünkü bu yakın gelecekte üzerinde çalışacağım bir şeyle alakalı.
Teşekkürler, Donnelle. Yeniden uygulanmaya başlayacağını düşündüm. Bunun nasıl yapılacağına dair ipuçları için teşekkürler! – dmo
Çok benzer bir örnek doğrudan MSDN'de bulunabilir: http://msdn.microsoft.com/en-us/library/system.windows.controls.richtextbox.getspellingerror(v=vs.110).aspx –
@ Donnelle Partiye geç kaldığım için üzgünüm, ama aynı soruna (basit bir metin kutusuna sahip olan senaryonun dışında) ve WPF etiketine sahip olduğum için, daha fazla "XAMLish" yolu sağlayabilir misiniz lütfen? – Yoda