Я видел несколько примеров рендеринга строк размером 1 пиксель в WPF, но ни один из них не подходит для моей ситуации. Я использую DrawingVisual и DrawingContext для рисования некоторых фигур и RenderTargetBitmap и PngBitmapEncoder для генерации изображения. Во многих случаях прямоугольники имеют 2-пиксельную границу, хотя я установил ее на 1. Я предполагаю, что это связано с независимым от разрешения рендерингом.
Я нашел несколько решений, но они либо в XAML, либо применяются к элементам управления рисованием. Самая близкая вещь, которую я нашел, это XSnappingGuidelines / YSnappingGuidelines, но я не могу найти ни одного примера того, как его использовать. По этим свойствам очень не хватает документации.
Как отключить независимый от разрешения рендеринг для DrawingVisual?
UPDATE:
Вот что я пытаюсь сделать:
Объявление чертежа Визуал:
DrawingVisual mainTemplate = new DrawingVisual();
Получить контекст:
using (DrawingContext context = mainTemplate.RenderOpen())
Нарисуйте прямоугольник:
penToUse = new Pen(new SolidColorBrush(Color.FromRgb(0xFF, 0xFF, 0xFF)), 1.0);
penToUse.DashStyle = DashStyles.Dash;
context.DrawRectangle(brushToUse, penToUse, new Rect(left, top, width, height));
Где установить режим рендеринга для выравнивания по пикселям?
Jorj