Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   .NET-Sprachen (https://www.delphipraxis.net/82-net-sprachen/)
-   -   C#: Flackern bei Animation (WPF) (https://www.delphipraxis.net/175363-c-flackern-bei-animation-wpf.html)

Jazzman_Marburg 16. Jun 2013 19:35

C#: Flackern bei Animation (WPF)
 
Hallo Gemeinde!
Ich mache gerade die ersten Schritte mit C# und WPF -- und dachte vielleicht kennt sich ja auch der Eine oder Andere damit auch aus :-D
Mittles Timer (System.Windows.Threading.DispatcherTimer) bewege ich eine Ellipse über das Canvas. Nun sehe ich aber ein hässliches Flackern -- welches sicher verstärkt wenn ich es schneller animieren lasse.

In Delphi gibt es ja die schöne Property DoubleBuffered, die das prima verhindern konnte.
Aber nun in C#? Zumal ja WPF doch DirectX nutzt?

Oder hat jemand eine andere Idee?

BTW: Die Programmierung dieses kleinen Spielchens wird hier von Jörn Loviscach auf YouTube demonstriert. Kann nicht erkennen (Video), dass es dort auch flackert - aber bei mir schon :(

Lieben Dank & Gruß
Jazzman

Furtbichler 17. Jun 2013 06:53

AW: C#: Flackern bei Animation (WPF)
 
Wie renderst Du denn? Erst den Canvas löschen und dann die Elipse zeichnen?

pustekuchen 17. Jun 2013 06:54

AW: C#: Flackern bei Animation (WPF)
 
Dort gibt es ebenfalls die Property DoubleBuffered

http://msdn.microsoft.com/de-de/libr.../3t7htc9c.aspx

Code:
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
Crosspost: MyCSharp

Jazzman_Marburg 17. Jun 2013 09:00

AW: C#: Flackern bei Animation (WPF)
 
Zitat:

Zitat von pustekuchen (Beitrag 1218745)
Dort gibt es ebenfalls die Property DoubleBuffered

http://msdn.microsoft.com/de-de/libr.../3t7htc9c.aspx

Code:
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);

Hui! :thumb:
Das ist ja cool!

Werde ich ausprobieren -- vielen Dank!

Gruß
Jazzman

Jazzman_Marburg 18. Jun 2013 07:24

AW: C#: Flackern bei Animation (WPF)
 
Zitat:

Zitat von pustekuchen (Beitrag 1218745)
Dort gibt es ebenfalls die Property DoubleBuffered
http://msdn.microsoft.com/de-de/libr.../3t7htc9c.aspx
Code:
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
Crosspost: MyCSharp

Oh - scheint es wohl nur für die WinFroms zu gelten - nicht für WPF.
Aber eine kleine Anpassung des Timers an die Bildwiederholfrequenz hat das Problem behoben.

Gruß
Jazzman

madas 18. Jun 2013 10:19

AW: C#: Flackern bei Animation (WPF)
 
Zitat:

Zitat von pustekuchen (Beitrag 1218745)
Dort gibt es ebenfalls die Property DoubleBuffered

http://msdn.microsoft.com/de-de/libr.../3t7htc9c.aspx

Code:
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
Crosspost: MyCSharp

Hier geht es ja um ein Problem mit WPF und nicht Windows-Forms.
WPF ist DoubleBuffered von Haus aus.

madas


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz