Почему использование класса RenderTargetBitmap увеличивает счетчик GDI? - PullRequest
0 голосов
/ 13 июня 2019

Мое понимание

1) Классы внутри System.Windows.Media используют DirectX для рендеринга. Он не будет использовать GDI +. 2) Только классы в «System.Drawing» используют GDI + для рисования (это может привести к увеличению числа дескрипторов GDI).

Выпуск

Но когда я использую 'System.Windows.Media.Imaging.RenderTargetBitmap' для рендеринга растрового изображения, количество GDI кажется увеличенным.

Почему так происходит?

(Поскольку мне нужно разместить эти изображения на кнопке, а эта кнопка является частью шаблонной ячейки элемента управления Grid, я хочу сократить использование GDI.)

DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen();
// Create Rectangle
Rect rect = new Rect(new System.Windows.Point(0, 0), new System.Windows.Point(100, 100));
// Draw Rectangle
System.Windows.Media.Pen pen = new System.Windows.Media.Pen();
pen.Brush = Brushes.Black;
pen.Thickness = 5;
drawingContext.DrawRectangle(Brushes.Black, pen, rect);             
drawingContext.Close();
RenderTargetBitmap bmp = new RenderTargetBitmap(100, 100, 96.0, 96.0, PixelFormats.Pbgra32);
//Render DrawingVisual 
bmp.Render(drawingVisual);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...