2009-06-02 15 views

cevap

40

Kes, Kopyala ve Yapıştır herhangi bir uygulama kullanılan yaygın komutları,

yukarıdaki metin kutusu kodu
<TextBox CommandManager.PreviewExecuted="textBox_PreviewExecuted" 
     ContextMenu="{x:Null}" /> 

geride kodunun altına ekleyin CommandManager Sınıf

ve kodunda PrviewExecuted olay şu komutları kısıtlayabilir vardır ve iş

private void textBox_PreviewExecuted(object sender, ExecutedRoutedEventArgs e) 
{ 
    if (e.Command == ApplicationCommands.Copy || 
     e.Command == ApplicationCommands.Cut || 
     e.Command == ApplicationCommands.Paste) 
    { 
      e.Handled = true; 
    } 
} 
+2

Ayrıca, ben de içerik menüsünü null olarak ayarlamam gerektiğini düşünüyorum. – Sauron

+0

bağlam menüsünü devre dışı bırak –

+1

Herkesin aşağıdaki formda kullanmasını öneririm: 'e.Command == ApplicationCommands.Cut' yerine, yerelleştirme nedeniyle değişebilecek bir dizgeye dönüştürmek ve bunlara güvenmek yerine, ben bir düzenleme önerisi gönderdim. – VitalyB

13

CommandName yöntemi CommandName gibi Japon OS ile bir Sisteminde çalışmaz yapılan == karşılaştırma wi "yapıştır" olduğunu başarısız olursun. Aşağıdaki yaklaşımı denedim ve benim için çalıştı. Ayrıca, bağlam menüsünü manuel olarak devre dışı bırakmam gerekmez. XAML dosyasında

: ardındaki kodunda

<PasswordBox.CommandBindings> 
    <CommandBinding Command="ApplicationCommands.Paste" 
    CanExecute="CommandBinding_CanExecutePaste"></CommandBinding> 
</PasswordBox.CommandBindings> 

:

private void CommandBinding_CanExecutePaste(object sender, CanExecuteRoutedEventArgs e) 
{ 
    e.CanExecute = false; 
    e.Handled = true; 
} 
İlgili konular