Lösen von Benutzersteuerungsflackern während der Navigation
Anwendungen mit häufiger Benutzersteuerungsnavigation erleben häufig während der Kontrollupdates flackern. Während Doppelpufferung ein gemeinsamer Ansatz ist, reicht es nicht immer aus, dieses Problem vollständig zu lösen.
Die Hauptursache dieses Flackers liegt im Malprozess des Benutzerkontrolles. Die Steuerung malt ihren Hintergrund und lässt Lücken, in denen sich die Kindersteuerungen befinden. Jede Kindersteuerung malt dann seinen Inhalt und füllt diese Lücken. Die kurze Sichtbarkeit dieser Lücken (oft weiß oder schwarz) erzeugt den flackernden Effekt.
Dieses Problem ist der Abhängigkeit von Windows Forms Architecture in einzelnen Fenster für untergeordnete Steuerelemente inhärent. Die effektivste Lösung besteht darin, doppelte Pufferung für die gesamte Form zu ermöglichen, einschließlich der Kinderkontrollen. Dies wird erreicht, indem die Eigenschaft des Formulars auf das CreateParams
-Flag eingestellt wird. WS_EX_COMPOSITED
durchgeführt werden
OnResize()
. Format32bppPArgb
WS_CLIPCHILDREN
Label
-Kontrollen, indem Sie ihren Inhalt direkt innerhalb des Ereignisses des UC -Ereignisses des UC -Ereignisses zeichnen. Dies vereinfacht den Code oft erheblich. PictureBox
OnPaint()
Das obige ist der detaillierte Inhalt vonWarum flackert mein Benutzer beim Navigieren und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!