Pergunta

Estou pintando uma "imagem" bastante complexa (que muitas vezes precisa ser atualizada e tem muitas primitivas de desenho) em uma janela do WPF, substituindo o método ONRENDER de um Uielement separado e usando o DrawingContext para desenhar diretamente os primitivos. .

minha pergunta é, o que exatamente acontece nos bastidores?Tanto quanto eu entendo isso não está usando o modo retido (que seria o caso se eu estivesse colocando formas no controle).Eu estou fazendo a pergunta porque estou ansioso que desenhar assim vai apenas usar GDI + na parte de trás que traz com seus próprios problemas (por exemplo, coisas de impressão desenhadas com GDI + já custam tempo e esforço).

Existem bons recursos (além dos recursos óbvios do MSDN que não pareciam ser capazes de me iluminar?

ou eu tenho tudo completamente errado?

Obrigado por alguma resposta me apontando na direção certa. [edit: ortografia]

Foi útil?

Solução

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top