我想用NSBezierPath
:
NSView
的DrawRect
周围画一个1px宽的边框BorderColor.Set();
var path = NSBezierPath.FromRect(theRect);
path.LineWidth = 1;
path.Stroke();
现在BorderColor
被设置为NSColor.Gray
,我可以看到,而调试有一个RGBA颜色代码:(127,127,127,255)
但是屏幕上出现的1px宽边框的颜色是:(194,194,194,255)
当我将path.LineWidth
设置为3时,我可以看到3条线,中间的颜色是错误的(194..),两个翅膀的颜色是(135,135,135,255 ..)-这与想要的颜色足够接近(127..)。
当我使用四个1px宽的矩形作为边框,然后Fill
这4个矩形时,我也得到了(135..)的颜色,这也是可以的。
我可以使用基于矩形的解决方案,我只是想知道:
是否有一种方法来实现正确的颜色为1px宽的NSBezierPath.Stroke
边框
假设您正确设置了笔画颜色(我们不知道BorderColor
是如何设置的),可能会出现这样的情况:您正在测量屏幕上的颜色值,特别是对于细线,可能已经被反锯齿化了,所以您看不到原始颜色,而是看到反锯齿算法的输出。
将宽度设置为大一些,比如10,并测量"blob"中间的颜色,以确保你不会追逐反混叠的伪影。