2009-07-15 7 views

Antwort

1

Sie können ganz einfach wickeln, was dieser Artikel in einer Immobilie/Verhaltensweisen ...

dh angebracht beschreibt. TextBoxManager.AllowDrag = "False" (Für weitere Informationen sehen Sie sich diese 2 Codeproject Artikel - Drag and Drop Sample und Glaseffekt Probe link text)

Oder versuchen, die neue Mischung aus SDK Behaviors

UPDATE

  • Lesen Sie auch this Artikel von Bill Kempf über beigefügte Verhaltensweisen
  • Und wie kek444 in den Kommentaren darauf hingewiesen, dann erstellen Sie einfach einen Standard-Stil für textbxo whit this at Tached Immobilien-Set!
+1

Und natürlich setzen die angefügten Eigenschaften in einem Standardstil für das Textfeld, wenn das erforderlich ist, etwas Handarbeit zu sparen. –

3

Verwenden Sie die folgenden nach InitializeComponent()

DataObject.AddCopyingHandler(textboxName, (sender, e) => { if (e.IsDragDrop) e.CancelCommand(); }); 
+1

Für alle, die dies tun möchten, ist dies bei weitem der einfachste Weg, dies über Code zu tun. Eine vollständige Erklärung finden Sie hier: http://www.switchonthecode.com/tutorials/wpf-snippet-disabling-dragging-from-a-textbox – stone

0

Erstellen Sie Ihre Besitzer Benutzersteuerung ex MyTextBox: TextBox und außer Kraft setzen:

protected override void OnDragEnter(DragEventArgs e) 
    { 
     e.Handled = true; 
    } 

    protected override void OnDrop(DragEventArgs e) 
    { 
     e.Handled = true; 
    } 


    protected override void OnDragOver(DragEventArgs e) 
    { 
     e.Handled = true; 
    } 
+2

Dies funktioniert nicht. Es verhindert Drop, aber nicht vom Steuerelement ziehen. Außerdem können schreckliche Dinge passieren, wenn Sie den Text irgendwo anders aus der Textbox löschen. – Mark

0

persönlich eine benutzerdefinierte Steuerelement TextBox ich geschaffen, die nicht erlaubt ziehen Sie wie folgt:

/// <summary> 
/// Represents a <see cref="TextBox"/> control that does not allow drag on its contents. 
/// </summary> 
public class NoDragTextBox:TextBox 
{ 
    /// <summary> 
    /// Initializes a new instance of the <see cref="NoDragTextBox"/> class. 
    /// </summary> 
    public NoDragTextBox() 
    { 
     DataObject.AddCopyingHandler(this, NoDragCopyingHandler); 
    } 

    private void NoDragCopyingHandler(object sender, DataObjectCopyingEventArgs e) 
    { 
     if (e.IsDragDrop) 
     { 
      e.CancelCommand(); 
     } 
    } 
} 

Anstatt TextBox zu verwenden, verwenden Sie local: NoDragTextBox wobei "local" der Alias ​​für den Speicherort der NoDragTextBox-Assembly ist. Die obige Logik kann auch erweitert werden, um das Kopieren/Einfügen in TextBox zu verhindern.

Für weitere Informationen überprüfen Sie den Verweis auf den obigen Code auf http://jigneshon.blogspot.be/2013/10/c-wpf-snippet-disabling-dragging-from.html