WPF. 如何仅显示大画布的一部分?

8
假设我有一个定义为1000x1000的画布。在Viewbox(或矩形)中仅显示其中的100x100部分,这是否可能?任何帮助都将不胜感激.....
1个回答

7
如果您使用画笔,则可能需要查看WPF中的Viewbox和Viewport编辑:我刚意识到Viewbox和Viewport用于画笔,这在您的情况下并不是很合适。我查了一下,我认为您会喜欢UIElement上的Clip属性。
由于Canvas也是UIElement,因此可以使用Clip属性在Canvas上模拟视口。 单击此处以获取一些简单的几何类型 我认为您可以使用RectangleGeometry。
<Canvas>
    <Canvas.Clip>
        <RectangleGeometry Rect="50,50,25,25" />
    </Canvas.Clip>
</Canvas>

编辑 #2:

嘿嘿,好的... 如果你想要显示整个Canvas,只是更小一些,也许你应该看看LayoutTransform。然后使用ScaleTranform来调整Canvas的大小;)。

<Canvas>
    <Canvas.LayoutTransform>
        <ScaleTransform CenterX="0" CenterY="0" ScaleX="0.5" ScaleY="0.5" />
    </Canvas.LayoutTransform>
</Canvas>

调整参数直到您获得所需的效果;)

视口正是我想要的。不幸的是,画布上没有这样的属性。我该如何绕过这个限制? - Erik Z
嗨,Erik..我稍微改了一下答案...我认为Clip属性会更合适 :) - Arcturus
谢谢!Clip 差不多就是我在寻找的。我可以剪辑以仅显示画布的一部分.....但我想要调整剪辑区域的大小,使其填充其容器。这可行吗? - Erik Z
我必须澄清自己。 我希望剪切区域填充与原始画布相同的区域。 - Erik Z
ViewBox(不是ViewPort)与画刷无关,我认为这正是您所需要的。只需将内容放入其中并设置适当的属性即可。 - Thomas Levesque

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接