So testen Sie, ob ein Fenster C # WPF gezogen wird

8

Ich habe ein fensterloses Fenster, da ich einen eigenen Fensterstil erstellen wollte.

Die Schaltflächen für Titel und Minimieren, Maximieren und Schließen befinden sich in einem Dock-Bereich. Ich habe den folgenden Event-Handler hinzugefügt, um das Fenster zu maximieren, wiederherzustellen und zu ziehen.

Das Problem tritt auf, wenn das Fenster maximiert ist.

Was ich gefunden habe ist, dass, wann immer ich einen einzigen Klick auf den Titel mache, wiederhergestellt wird. Wenn ich es nur wiederherstellen möchte, wenn es doppelt angeklickt oder gezogen wird. Ich kann sehen, warum es passiert, aber ich bin mir nicht sicher, wie ich das lösen kann.

%Vor%

Zusammen mit dieser Klasse:

%Vor%

Und dies um Grenzen des aktuellen Bildschirms auszuarbeiten.

%Vor%     
Hank 14.04.2013, 06:19
quelle

2 Antworten

3

Es gibt ein WPF-Element (Steuerelement) namens Thumb , das ich zum Erstellen von Drag-fähigen Teilen verwende. Es hat ein DragDelta -Ereignis, mit dem Sie HorizontalOffset und VerticalOffset des ziehbaren Teils untersuchen können. Sie können vorherige Werte speichern und prüfen, ob neue Werte gleich oder geändert sind. was bedeutet, dass es gezogen wird.

(Nur ein Vorschlag, der für mich funktioniert hat).

    
Kaveh Shahbazian 08.05.2013, 23:24
quelle
1

Ok, vielleicht wird jemand das hilfreich finden.

Ich habe die Dinge geändert, so dass es das Ziehen durch zwei Ereignisse in den MouseMove- und MouseLeftButtonDown-Ereignissen erkennt.

MouseLeftButtonDown erfasst eine mögliche Startposition zum Ziehen in setStartPosition ().

%Vor%

Hier ist die modifizierte Klasse:

%Vor%     
Hank 10.05.2013 05:01
quelle

Tags und Links