6

Xaml からこのオブジェクトを作成する良い方法を知っている人はいますか? また、他のコントロールの上に重ねる場合は、.5 Opacity で動作する必要があります。

また、水平方向または垂直方向の配置によってサイズ変更できる必要があります。

私はいくつかの困難を抱えています。最も近いのは 2 つの境界線で、1 つには負のマージンがありますが、不透明度が適用されている場合は機能しません。

動作するコード:

<Path Fill="Black">
    <Path.Data>
        <CombinedGeometry GeometryCombineMode="Exclude">
            <CombinedGeometry.Geometry1>
                <RectangleGeometry RadiusX="5" RadiusY="5" Rect="0,0,200,100" />
            </CombinedGeometry.Geometry1>
            <CombinedGeometry.Geometry2>
                <RectangleGeometry RadiusX="5" RadiusY="5" Rect="105,5,90,90" />
            </CombinedGeometry.Geometry2>
        </CombinedGeometry>
    </Path.Data>
</Path>
4

1 に答える 1

6

EvenOdd FillRule でGeometryGroupを使用するか、 Xor または Exclude の GeometryCombineMode でCombinedGeometryを使用します。結合するジオメトリは両方とも、適切な RadiusX と RadiusY を持つ RectangleGeometry オブジェクトになります。結果は、内側の長方形が配置されていた場所に「穴」のある外側の長方形になります。(これは、黒い長方形の中に白い長方形ではなく、あなたが望むものだと思います。)

次に、この複合ジオメトリをその Data プロパティとして Path に割り当て、必要に応じて Fill と Opacity を設定できます。

于 2009-12-22T21:00:41.357 に答える