如何在WPF Canvas上绘制滚动条

Sco*_*oby 12 wpf canvas scrollbars

我正在尝试使用滚动条创建一个画布.任何人都可以帮我提一些如何做到这一点的想法吗?我已经尝试过使用1行和1列的网格,但由于某些限制,我想使用canvas.

提前致谢!

Ben*_*ier 20

您可以将画布放在滚动查看器中.我尝试了这个快速测试,它允许我滚动浏览画布的内容.

<ScrollViewer Height="100" Width="200">
    <Canvas Height="400" Width="400">
            //Content here
    </Canvas>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

编辑:这是一个示例,滚动条仅在需要时显示,并随着画布大小的变化而动态变化.

    <Button Content="Change Canvas Size" Click="ChangeCanvasSize_Click"/>
<ScrollViewer Height="100" Width="200" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
    <Canvas x:Name="TestCanvas">
            <TextBlock Text="Test Test"/>
    </Canvas>
 </ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

单击按钮更改画布大小:

    private void ChangeCanvasSize_Click(object sender, RoutedEventArgs e)
    {
        TestCanvas.Width = 600;
        TestCanvas.Height = 600;
    }
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我开始时没有滚动条,当我单击按钮展开画布时,会出现滚动条.