我想一个画面内加载图像,从而,如果图像的大小超出画布,滚动条应该得到激活(MS画图风格)的ScrollViewer和帆布
<Window>
<ScrollViewer>
<Canvas ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollBarVisibility="Visible">
<Image Source="SampleImage.jpg" />
</Canvas>
</ScrollViewer>
</Window>
- 现在,作为
Canvas
延伸到Window
的大小,滚动条不会出现,因为Canvas
实际上并没有溢出Window
。 - 其次,作为
Image
比Canvas
大得多,它是越来越修剪在Canvas
界限,所以ScrollViewer
并不认为它的内容:Canvas
实际上四溢。
它也发生了很多时间StackPanel
s,即使绑定的数据有几十行,但滚动条仍然没有被激活。有时候,scrollviewers对我来说显得神秘。
那么,使用ScrollViewer
控件时应该记住什么基本逻辑。
谢谢。
编辑:刚刚编辑问题标题,让任何有问题的人都可以在搜索中轻松得到这个问题。
取出画布,它应该工作 –
是的,但为什么不能用帆布。如果图像不仅仅是窗口的控制,你可能有菜单,工具栏,状态栏等等,因此它应该有另一个容器而不是'Window'。 – Marshal
看到我的答案,为什么不用帆布。如果有更多的元素,只需用Grid替换Canvas。只有当你不关心它的大小时才使用Canvas。为了滚动目的,您需要知道画布大小。有没有神秘的ScrollViewer :) – Liero