Мое понимание
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);