【问题标题】:How to draw Shape exclusively inside Canvas如何在 Canvas 内专门绘制形状
【发布时间】:2012-04-10 08:08:00
【问题描述】:

我在 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>

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

谢谢。

【问题讨论】:

    标签: .net wpf canvas drawing shape


    【解决方案1】:

    这就是 ClipToBounds 属性的用途:

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

    【讨论】:

    • 谢谢,这个简洁的答案帮助我修复了我的应用程序中长期存在的错误。
    猜你喜欢
    • 2013-11-01
    • 2012-07-09
    • 2017-12-10
    • 2014-10-03
    • 2017-10-05
    • 2012-03-13
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多