我想向我的程序添加滚动视图,我尝试了ScrollView控件,但是没有生效。这是我第一次处理卷轴请帮帮我:)。
我的xaml代码:
<DockPanel Grid.Row="1" Background="#FF695887">
<ScrollViewer VerticalScrollBarVisibility="Auto" Height="795">
<Canvas Name="zemelapis" Height="Auto" Width="Auto">
<Image Name="pav_kelias" />
<Image Name="car1" />
</Canvas>
</ScrollViewer>
</DockPanel>
由于这两张图片不合适,我需要一个滚动条。也许我应该使用ScrollBar?
我的程序示例:https://gyazo.com/a4ba7e4d5004632e2229a87e686c4c09 ,你可以看到底部图像不适合窗口范围。
答案 0 :(得分:3)
如果您希望ScrollViewer轻松工作,请使用Grid而不是Canvas:
<DockPanel Background="#FF695887">
<ScrollViewer >
<Grid Name="zemelapis">
<Image Name="pav_kelias" Source="acteurs.png"/>
<Image Name="car1" Source="public.jpg"/>
</Grid>
</ScrollViewer>
</DockPanel>
正如Domysee解释的那样,Canvas可以让您完全控制布局。然而,网格将根据内容自动调整其大小。
请参阅http://www.wpf-tutorial.com/panels/introduction-to-wpf-panels/
答案 1 :(得分:2)
您已将Auto
指定为Height
和Width
。这意味着Canvas
将填充可用的高度。
自动调整大小行为意味着元素将填充高度 可以使用。
在这种情况下,可用高度是ScrollViewer
的高度。
如果您希望Canvas
更大,从而滚动ScrollViewer
,则应在Canvas
上设置一个高于ScrollViewer
高度的高度。
所以,例如:
<DockPanel Grid.Row="1" Background="#FF695887">
<ScrollViewer VerticalScrollBarVisibility="Auto" Height="795">
<Canvas Name="zemelapis" Height="1000" Width="Auto">
<Image Name="pav_kelias" />
<Image Name="car1" />
</Canvas>
</ScrollViewer>
</DockPanel>