Direct2D 中的 HatchStyle

HatchStyle in Direct2D

关于如何在 Direct2D 中从 GDI 复制 HatchStyle 有什么建议吗?

https://msdn.microsoft.com/en-us/library/windows/desktop/dd144966%28v=vs.85%29.aspx

需要考虑的事项:

1) 线的颜色必须和画笔的颜色一样,就像在GDI中一样。
2) 必须表现出色

到目前为止,这是我可能的解决方案:
1) 使用 ID2D1BitmapBrush,在其上绘制具有指定颜色的线条。
这意味着每次颜色更改或 HatchStyle 更改时我都需要重新创建画笔。在指定区域绘制BitmapBrush,并利用BitmapBrush ExtendMode WRAP在X和Y重复图案。

2) 在指定颜色的区域上一条一条地画出所有线条。

还有另一种选择:创建两个蒙版,一个用于主色,另一个用于辅助色(应该与第一个蒙版相反)。然后调用 FillOpacityMask 两次。第一次调用将使用第一个遮罩+纯色画笔作为原色,第二次调用将使用第二个遮罩+纯色画笔作为二次色。