Mar*_*hal 1 wpf xaml scrollviewer
我试图在画布中加载图像,这样,如果图像的大小溢出画布,滚动条应该被激活(MS Paint样式)
<Window>
<ScrollViewer>
<Canvas ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollBarVisibility="Visible">
<Image Source="SampleImage.jpg" />
</Canvas>
</ScrollViewer>
</Window>
Run Code Online (Sandbox Code Playgroud)
Canvas拉伸到Window大小时,滚动条将不会显示为Canvas实际上没有溢出Window.Image比Canvas它大得多,它会被限制在其范围内Canvas,所以ScrollViewer不要认为它的内容:Canvas实际上是溢出的.它StackPanel也会发生很多时间,即使绑定数据有几十行,但滚动条仍然没有被激活.有时滚动查看器对我来说似乎很神秘.
那么,在使用ScrollViewer控件时应该记住的基本逻辑应该是什么.
谢谢.
编辑:刚刚编辑了问题标题,因此无论是否有画布问题都可以在搜索中轻松获得此问题.
从MSDN: Canvas是唯一没有固有布局特征的面板元素.Canvas的默认高度和宽度属性为零,除非它是自动调整其子元素大小的元素的子元素.画布的子元素永远不会调整大小,它们只是定位在指定的坐标处.这为不需要或不需要固有尺寸限制或对准的情况提供了灵活性.对于您希望自动调整大小和对齐子内容的情况,通常最好使用Grid元素.
Hovever,你可以明确地设置Canvas Height和Width:
<ScrollViewer Height="100" Width="200">
<Canvas Height="400" Width="400">
//Content here
</Canvas>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)