Entwickler-Ecke
WPF / Silverlight - Best Performance: Canvas clipping @ OnRender()
C# - Mi 06.07.16 09:48
Titel: Best Performance: Canvas clipping @ OnRender()
Hey @ll,
hat sich zufällig schon mal jemand intensiver mit dem clipping in WPF beschäftigt? Ich versuche gerade herauszufinden, wie man die beste Performance beim clippen bekommt.
In meinem Fall habe ich eine Canvas die in einem Viewport liegt (einem eigenen Viewport, keine Viewbox!). In dieser Canvas wird ein sehr komplexes Geometry-Objekt gerendert. Dies übernimmt der DrawingContext der OnRender Methode (welche ich überschreibe).
Da der Viewport nicht immer die ganze Canvas anzeigt, sondern z.B. mal auf einen Ausschnitt reinzoomt, wird viel außerhalb des sichtbaren Bereichs gerendert. Dies sollte sich ja durch korrektes clippen verhindern lassen.
Die Frage ist jetzt nur: wie clippe ich?
1. Über die Clip-Property der Canvas
2. Über die DrawingContext.PushClip(...) Methode
3. Durch die Schnittmenge meines Geometry-Objekts mit dem Clip-Objekt
In meinem Fall geht es nur um Performance, d.h. wie rendere ich möglichst schnell. Ich dachte ich frage mal hier im Forum bevor ich alle 3 Verfahren genauer untersuche. Vielleicht hat sich ja schonmal jemand damit befasst.
// Nachtrag
Ich muss die Canvas sehr oft rendern, da das Geometry-Objekt mit der Maus gezeichnet wird (so ähnlich wie der Pinsel in Paint)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!