Я хочу нарисовать границу шириной 1 пиксель вокруг моего пользовательского NSView
в DrawRect
с помощью NSBezierPath
:
BorderColor.Set();
var path = NSBezierPath.FromRect(theRect);
path.LineWidth = 1;
path.Stroke();
Теперь для BorderColor
установлено значение NSColor.Gray
, которое, как я вижу во время отладки, имеет цветовой код RGBA: (127,127,127,255)
Но граница шириной 1 пиксель, которая появляется на экране, получает этот цвет: (194,194,194,255)
Когда я устанавливаю path.LineWidth
к 3, то я вижу 3 линии, середину с неправильным цветом (194..), 2 крыла с цветом (135,135,135,255) - который достаточно близок к желаемому (127..) цвету, чтобы быть в порядке.
Когда я вместо этого использую четыре прямоугольника шириной 1 пиксель для границы и Fill
этих 4 прямоугольников, я также получаю цвет (135..), что снова нормально.
Я могу использовать это решение на основе прямоугольника, мне только интересно:
Есть ли способ добиться правильного цвета для границы шириной 1 пиксель с помощью NSBezierPath.Stroke
?