Результаты поиска
Найдено результатов: 2
Ошибка отсечения чертежа .Net
Функция GDI+ DrawLines имеет ошибку отсечения, которую можно воспроизвести, выполнив следующий код c#. При выполнении кода появляются два пути строк, которые должны быть идентичными, потому что оба они находятся внутри области отсечения. Но когда область отсечения установлена, один из сегментов линии не рисуется.
protected override void OnPaint(PaintEventArgs e)
{
PointF[] points = new PointF[] { new PointF(73.36f, 196),
new PointF(75.44f, 32),
new PointF(77.52f, 32),
new PointF(79.6f, 196),
new PointF(85.84f, 196) };
Rectangle b = new Rectangle(70, 32, 20, 164);
e.Graphics.SetClip(b);
e.Graphics.DrawLines(Pens.Red, points); // clipped incorrectly
e.Graphics.TranslateTransform(80, 0);
e.Graphics.ResetClip();
e.Graphics.DrawLines(Pens.Red, points);
}
Установка режима антиали на графическом объекте решает эту проблему. Но это не настоящее решение.
Кто-нибудь знает обходной путь?
Как сделать так, чтобы PictureBox использовало пересчет ближайших соседей?
Я использую StretchImage, потому что коробка может быть изменена с помощью сплиттеров. Похоже, что по умолчанию используется какая-то гладкая билинейная фильтрация, в результате чего мое изображение становится размытым и имеет муаровые узоры.