Hat jemand eine Idee, wie ich Drag & Drop für alle meine TextBox-Elemente deaktivieren kann? Ich habe etwas gefunden here, aber das würde mich brauchen, eine Schleife für alle Elemente auszuführen.WPF/C#: Deaktivieren Sie Drag & Drop für TextBoxes?
Antwort
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!
Verwenden Sie die folgenden nach InitializeComponent()
DataObject.AddCopyingHandler(textboxName, (sender, e) => { if (e.IsDragDrop) e.CancelCommand(); });
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
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;
}
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
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
- 1. Drag & Drop im Lösungsexplorer deaktivieren
- 2. So deaktivieren Sie Drag & Drop in Textbereich
- 3. Text per Drag & Drop deaktivieren
- 4. Drag & Drop für Prototype?
- 5. CTreeCtrl Deaktivieren Drag & Drop auf bestimmten Knoten
- 6. So aktivieren und deaktivieren Sie Drag & Drop auf einer Recycleransicht
- 7. Drag & Drop ListBox für WPF
- 8. Drag & Drop-Steuerelement für Silverlight
- 9. YUI Drag & Drop-Proxy Drag
- 10. Meteor reagieren Drag & Drop
- 11. VBA Listbox Drag & Drop
- 12. Drag & Drop-Ansicht nicht sichtbar nach Drag & Drop abgeschlossen
- 13. Angular2 Drag & Drop-Ziel
- 14. "Drag 'n' Drop" Spielanimation
- 15. Portierung von WinForms Drag & Drop auf Drag & Drop von WPF Drag & Drop
- 16. WinForm-Benutzersteuerelemente - Drag Drop
- 17. Drag & Drop Javascript Ereignis
- 18. eckig2 drag and drop
- 19. ipad Drag & Drop
- 20. Logik hinter Drag & Drop
- 21. jQuery Drag & Drop Positionsfehler
- 22. Einfaches Drag & Drop Ereignishandhabungsproblem
- 23. iPhone Drag/Drop
- 24. Drag Drop mit SendMessage
- 25. Informationen über Drag & Drop!
- 26. Drag & Drop-Widgets tkinter
- 27. Drag & Drop Jquery
- 28. Reagieren nativen Drag & Drop
- 29. Java Drag and drop
- 30. Drag & Drop-Polyfill?
Und natürlich setzen die angefügten Eigenschaften in einem Standardstil für das Textfeld, wenn das erforderlich ist, etwas Handarbeit zu sparen. –