Как рисунок с чертежным элементом в непредвиденной работе за сценой?

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

  •  14-11-2019
  •  | 
  •  

Вопрос

Я рисую довольно сложное «образ» (который часто должен быть обновлен и имеет много примитивов чертежей) в окне WPF, переопределяя метод Onrender отдельного уведомления и используя чертежный элемент, чтобы напрямую нарисовать примитивы. .

Мой вопрос, что именно происходит за кулисами?Насколько я понимаю, это не использует сохраненный режим (который будет так, если бы я поместил фигуры в управление).Я задаю вопрос, потому что я стремлюсь, что рисун так, как это на самом деле просто использует GDI + на задней панели, который приносит свои собственные проблемы (например, печатающие вещи, нарисованные с GDI +, уже стоят времени и усилий и усилий).

Есть ли какие-то хорошие ресурсы (помимо очевидных ресурсов MSDN, которые, казалось, не смогли просветить меня?

или у меня все совершенно не так?

Спасибо за любые ответы, указывающие на меня в правильном направлении. [Редактировать: правописание]

Это было полезно?

Решение

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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top