如何在Canvas中专门绘制Shape

gli*_*ite 3 .net wpf drawing canvas shape

我在Canvas中有一个Shape ,像这样:

<ScrollViewer>

    <Border Height="342" Width="470" HorizontalAlignment="Left" 
        VerticalAlignment="Top" BorderThickness="3" BorderBrush="Black">

        <Canvas Background="White">
            <Rectangle Width="200" Height="200" Canvas.Left="103" 
                Canvas.Top="186" Fill="Red" />
        </Canvas>

    </Border>

</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

即使Rectangle是Canvas的孩子,它也会在Canvas限制之外绘制,覆盖边框底部边框.如何使Rectangle仅在Canvas限制内绘制,确保不显示超出矩形的部分?

谢谢.

Cle*_*ens 12

这就是ClipToBounds属性的用途:

<Canvas Background="White" ClipToBounds="True"> 
    <Rectangle Width="200" Height="200" Canvas.Left="103" Canvas.Top="186" Fill="Red" /> 
</Canvas> 
Run Code Online (Sandbox Code Playgroud)