ある種のマスク ダイアログでは、C# でジオメトリを反転できるようにしたいと考えています。たとえば、長方形を反転したいと思います。塗りつぶされた長方形ではこれが機能しますが、塗りつぶされていない長方形では同じことが機能しません。
たとえば、キャンバスにこの長方形がある場合:
そして、次のコードでこの四角形を反転します。
RectangleGeometry line = new RectangleGeometry(_myRectangle);
RectangleGeometry geo = new RectangleGeometry(_myCanvasRectangle);
PathGeometry intersect = Geometry.Combine(line, geo, GeometryCombineMode.Xor, null);
drawingContext.DrawGeometry(
new SolidColorBrush(Color.FromArgb(99, _myObjectColor.R, _myObjectColor.G, _myObjectColor.B)),
new Pen(new SolidColorBrush(_myObjectColor), _myActualLineWidth),
intersect
);
次の結果が得られます(灰色の領域は塗りつぶされた領域です)
長方形(最初の画像の黒い線)だけが保存され、残りが返される(灰色で塗りつぶされた)結果を達成する方法はありますか?
みんなありがとう!