Comment dessiner avec le DrawingContext dans le travail OnRender derrière la scène?

StackOverflow https://stackoverflow.com/questions/9519504

  •  14-11-2019
  •  | 
  •  

Question

Je peignons une "image" assez complexe (qui doit souvent être rafraîchie et possède de nombreuses primitives de dessin) dans une fenêtre WPF en remplaçant la méthode onRender d'un uielement distinct et en utilisant le DratringContext pour dessiner directement les primitives.

Ma question est que ce qui se passe exactement dans les coulisses?Autant que je sache, cela n'utilise pas le mode retenu (ce qui serait le cas si je placiez des formes dans la commande).Je pose la question parce que je suis impatient que ce dessin comme celui-ci utilisera simplement GDI + à l'arrière qui apporte avec ses propres problèmes (par exemple, des trucs d'impression dessinés avec GDI + nous ont déjà coûté temps et effort).

Y a-t-il de bonnes ressources (en plus des ressources MSDN évidentes qui n'ont pas semblé pouvoir m'éclairer?

ou avez-moi tout de tout faux?

Merci pour toutes les réponses me dirigez-vous dans la bonne direction. [edit: orthographe]

Était-ce utile?

La solution

You are still using retained mode, you're just not using high level objects (no animating objects, etc..), but instead simple points, lines, etc..

I've dug into the sources of DrawingContext and from what I can tell, it seems to be pushing all those DrawXYZ commands into a queue using some low-level wizardry (the queue itself consists of arbitrarily sized structs, each denoting a certain command).

WPF then processes this queue on another thread, denoted the rendering thread in this question. I haven't verified this, but I'm guessing that WPF uses the StreamingContext for all its drawing.

Furthermore, WPF is using DirectX for rendering, as can be seen by this bogpost, which takes a better look at what WPF actually does.

I hope this clarifies things for you.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top