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

Eri*_*k Z 7 wpf resize zoom wpf-controls viewbox

让我们说我的画布定义为1000x1000大.是否有可能只在Viewbox(或rectangel)中显示100x100的部分?

任何帮助是apreciated .....

Arc*_*rus 6

如果您使用Brushes,您可能需要查看WPF中的Viewbox和Viewport

编辑:我刚刚意识到Viewbox和Viewport用于刷子这在你的情况下并不合适.我查了一下,我想你会喜欢UIElement上的Clip属性.

由于Canvas也是一个UIElement,您可以使用Clip属性来模拟Canvas上的视口.

单击此处查看一些简单的几何类型

我认为你可以使用RectangleGeometry

<Canvas>
    <Canvas.Clip>
        <RectangleGeometry Rect="50,50,25,25" />
    </Canvas.Clip>
</Canvas>
Run Code Online (Sandbox Code Playgroud)

编辑#2:

好吧..如果你想要显示你的总画布,只有更小,perheps你应该看看和LayoutTransform.然后使用ScaleTranform调整Canvas的大小;).

<Canvas>
    <Canvas.LayoutTransform>
        <ScaleTransform CenterX="0" CenterY="0" ScaleX="0.5" ScaleY="0.5" />
    </Canvas.LayoutTransform>
</Canvas>
Run Code Online (Sandbox Code Playgroud)

调整参数,直到您收到所需的效果;)