【问题标题】:WPF canvas zoom and renderingWPF 画布缩放和渲染
【发布时间】:2010-07-23 14:17:49
【问题描述】:

我试图在控件中放置一个画布,然后我将使用布局转换来实现缩放功能。问题是,虽然放大画布很容易,但裁剪所需的部分却很困难。我认为归结为以下示例代码:

    <Canvas HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100">
        <Rectangle Width="5" Height="5" Canvas.Bottom="0" Canvas.Left="0" Fill="Green" />
        <Rectangle Width="5" Height="5" Canvas.Bottom="0" Canvas.Right="0" Fill="Green" />
        <Rectangle Width="5" Height="5" Canvas.Top="0" Canvas.Left="0" Fill="Green" />
        <Rectangle Width="5" Height="5" Canvas.Top="0" Canvas.Right="0" Fill="Green" />
        <Rectangle Width="5" Height="5" Canvas.Top="-10" Canvas.Right="0" Fill="Blue" />
        <Rectangle Width="5" Height="5" Canvas.Bottom="110" Canvas.Left="0" Fill="Blue" />
    </Canvas>

有没有办法阻止蓝色矩形渲染,因为它们超出了画布的边界?通过将画布添加到我的控件,它可以有效地将我的整个控件变成画布。

提前致谢, 谢恩

【问题讨论】:

    标签: c# wpf canvas rendering


    【解决方案1】:

    使用 Canvas 上的 ClipToBounds 属性:

    <Canvas ClipToBounds="True" 
            HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100">
        <Rectangle Width="5" Height="5" Canvas.Bottom="0" Canvas.Left="0" Fill="Green" />
        <Rectangle Width="5" Height="5" Canvas.Bottom="0" Canvas.Right="0" Fill="Green" />
        <Rectangle Width="5" Height="5" Canvas.Top="0" Canvas.Left="0" Fill="Green" />
        <Rectangle Width="5" Height="5" Canvas.Top="0" Canvas.Right="0" Fill="Green" />
        <Rectangle Width="5" Height="5" Canvas.Top="-10" Canvas.Right="0" Fill="Blue" />
        <Rectangle Width="5" Height="5" Canvas.Bottom="110" Canvas.Left="0" Fill="Blue" />
    </Canvas>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      相关资源
      最近更新 更多