9
A
回答
16
您可以将画布放在滚动查看器中。我试过这个快速测试,它允许我滚动画布的内容。
<ScrollViewer Height="100" Width="200">
<Canvas Height="400" Width="400">
//Content here
</Canvas>
</ScrollViewer>
编辑:这里是仅在需要时的涡旋柱显示了一个例子,它动态地改变作为画布大小的变化。
<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>
更改画布大小与按钮点击:
private void ChangeCanvasSize_Click(object sender, RoutedEventArgs e)
{
TestCanvas.Width = 600;
TestCanvas.Height = 600;
}
在这个例子中,我开始了,没有滚动条,当我点击按钮,扩展画布,滚动条显示。
1
好吧,在使用它一段时间后,我想出了一个办法。创建一个像这样的XAML
<ScrollViewer>
<Grid x:Name="drawingGrid" SizeChanged="drawingGrid_SizeChanged">
<Canvas Name="drawingCanvas"> /<Canvas>
</Grid>
</ScrollViewer>
on windowLoad函数将画布高度/宽度设置为等于网格高度/宽度。更新画布ht/wd:
- 当网格大小发生变化时,由于mininmize/maximize。
拖动的元素超出画布的边界或创建一个新的元素太近帆布
的边缘double dHeight = 220; if (drawingCanvas.Height < CurrentPosition.Y + dHeight) { // increase canvas height drawingCanvas.Height += (2 * dHeight); }
希望这是一些帮助。如果有人有任何更好的想法或建议来改善这一点,请分享。
0
通过结合马里奥sannum的答案,你的问题,然后我做了应该在大多数情况下正常工作的解决方案..
<ScrollViewer>
<Grid x:Name="drawingGrid" SizeChanged="drawingGrid_SizeChanged">
<Canvas Name="c">
<TextBlock x:Name="draw_Text" Text="Test Test"/>
</<Canvas>
</Grid>
</ScrollViewer>
void drawingGrid_SizeChanged(object sender, SizeChangedEventArgs e)
{
try { c.Height = draw_Text.ActualHeight; } catch { }
try { c.Width = draw_Text.ActualWidth; } catch { }
}
这应该调整画布这样的ScrollViewer可以滚动...
相关问题
- 1. 如何在画布上绘制画布
- 2. 使用WPF在画布上绘制线
- 3. WPF:在画布上绘制网格?
- 4. 在画布上绘制数组WPF C#
- 5. 画布上的滚动条
- 6. 如何显示滚动条在画布WPF
- 7. 如何强制滚动条滚动画布
- 8. WPF强制重绘画布
- 9. WPF画布图形绘制
- 10. 如何让用户使用WPF中的画布绘制线条
- 11. 如何在WPF中的1像素厚的画布上绘制线条
- 12. [WPF]如何在画布上绘制网格?
- 13. 如何在wpf画布上实现多点绘制线?
- 14. 如何在画布上绘制AdMob?
- 15. 如何在画布上绘制JPanel?
- 16. 如何在画布上绘制动画?(android)
- 17. 在Android浏览器的画布上绘制,页面滚动?
- 18. PyGtk在滚动条上绘制标记
- 19. 用画布绘制线条
- 20. 在画布上绘制ArcTo
- 21. 在画布上绘制
- 22. 在画布上绘制EditText
- 23. 在Scala.js上绘制画布
- 24. 在画布上绘制SVG
- 25. 绘制在画布上
- 26. 在子画布上绘制
- 27. HTML5画布 - 如何在图像背景上绘制线条?
- 28. java:如何在画布上绘制线条
- 29. 如何在实时画布上用像素绘制线条
- 30. 如何在处理中为画布制作滚动条
感谢您的回复。但事情是,我不知道我的画布的大小,直到运行时。所以不能有一个固定大小的画布。 如果用户在现有画布的边界附近单击,则会增加画布的尺寸,那么画布宽度和/或高度将增加50单位,并显示滚动条。 – Scooby 2010-05-13 19:00:11
如果将滚动条的可见性设置为“自动”,这应该仍然有效。我修改我的例子来说明。 – 2010-05-13 20:17:04