スケーリングされた長方形をクリップできる方法と同様の方法で、回転した長方形をクリップしようとしています。簡単なコードを次に示します。
<Canvas>
<!--first example: clipping (transparent yellow) correctly clips scaled rectangle -->
<Rectangle Fill="Red" Width="200" Height="200" Canvas.Left="20" Canvas.Top="20">
<Rectangle.Clip>
<RectangleGeometry Rect="0, 0, 200, 100">
<RectangleGeometry.Transform>
<ScaleTransform ScaleX="0.5" ScaleY="0.5"/>
</RectangleGeometry.Transform>
</RectangleGeometry>
</Rectangle.Clip>
<Rectangle.RenderTransform>
<ScaleTransform ScaleX="2" ScaleY="2"/>
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Width="200" Height="100" Canvas.Left="20" Canvas.Top="20">
<Rectangle.Fill>
<SolidColorBrush Color="Yellow" Opacity="0.5"/>
</Rectangle.Fill>
</Rectangle>
<!--second example: clipping (transparent yellow) incorrectly clips rotated rectangle -->
<Rectangle Fill="Red" Width="200" Height="200" Canvas.Left="20" Canvas.Top="250">
<Rectangle.Clip>
<RectangleGeometry Rect="0, 0, 200, 100">
<RectangleGeometry.Transform>
<RotateTransform CenterX="100" CenterY="100" Angle="0"/>
</RectangleGeometry.Transform>
</RectangleGeometry>
</Rectangle.Clip>
<Rectangle.RenderTransform>
<RotateTransform CenterX="100" CenterY="100" Angle="45"/>
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Width="200" Height="100" Canvas.Left="20" Canvas.Top="250">
<Rectangle.Fill>
<SolidColorBrush Color="Yellow" Opacity="0.5"/>
</Rectangle.Fill>
<Rectangle.RenderTransform>
<RotateTransform CenterX="100" CenterY="100" Angle="0"/>
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
最初の例では、クリッピング領域をスケーリング (縮小) することで、スケーリング (拡張) された四角形をクリップできます。2 番目の例では、似たようなことをしたいと思います。赤い四角形のクリップの Transform オブジェクトを何らかの方法で操作して、黄色の四角形で表されるクリッピング領域を維持します。これは難しくないはずですが、見えません。提案をありがとう。