Animieren form Größe in VB.NET
Ich habe ein Formular positioniert, der etwas über der Taskleiste/system tray in der unteren rechten Ecke von meinem desktop-Fenster. Es ist irgendwie wie ein pop-up-Meldung. Die Meldung an sich sieht toll aus, aber es gibt eine Taste, die die Größe der form bis, animieren die Dimensionierung in Schritten von 5px, während es bleibt die position relativ zu der unteren rechten Ecke des Bildschirms.
Das problem mit diesem ist, dass es sieht nicht sehr glatt. Anpassung Mir.Breite passt von der linken Seite, so dass Sie müssen, dann verschieben Sie das Formular auf der linken Seite mit Mir.Links zu kompensieren. Mich.SetBounds scheint nur ein wrapper für die Einstellung dieser Eigenschaften sowieso.
Gibt es irgendetwas, was ich tun kann, um die form glatt (oder zumindest erscheinen) ändern Sie die Größe nach außen von der linken Seite von der form?
Du musst angemeldet sein, um einen Kommentar abzugeben.
ETA: Sie können tatsächlich tun dies mit
SetBounds
alsSetBounds
delegieren zuSetBoundsCore
die wiederum ruftSetWindowPos
. SoSetBounds
intern wirklich alle Grenzen auf einmal und der window-manager neu gezeichnet, die Fenster nur nach alle Eigenschaften gesetzt sind.Eine andere Möglichkeit wäre, den import der
MoveWindow
- Funktion und verwenden, statt. Es erzeugt eine glatte animation hier, wie kann es in Größe und position gleichzeitig vor sagen Sie den Fenster-manager zum Neuzeichnen des Fensters.Mein test-code sah wie folgt aus (Umgerechnet von C# per IL zu VB mit Hilfe von Reflektor):
SetBounds
, da es nicht nennenMoveWindow
unter und sollte daher funktionieren.Habe ich nie ausprobiert, aber Sie haben versucht, die Einstellung der DoubleBuffer-Eigenschaft des Formulars auf True? Diese sollten glatt die Zeichnung.
Könnten Sie versuchen, die Verringerung der pixel-Schritte, es ist die Inkrementierung runter auf 1-2, wie gut, 5px scheint wie eine Menge, um die Anpassung der Größe, ich konnte sehen, wie dies erscheinen könnte, abgehackt.