为什么这在wpf中运行良好
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Canvas x:Name="MyDesigner">
</Canvas>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
现在,当我在Silverlight中执行相同操作并加载"可以拖动"的控件时,滚动条不会被触发,当我拖出视图时,没有任何反应...但是在wpf中它会自动显示它们...
作为对正常'gotcha'的快速检查,您是否明确设置了画布高度/宽度属性?
如果我为测试目的敲了一些xaml并运行它:
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Canvas x:Name="test" Background="Beige">
<TextBlock Canvas.Left="2000" Canvas.Top="200" Text="test"/>
</Canvas>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
将不显示滚动条,即使我已在画布2000中向左显式创建内容,未设置画布宽度意味着滚动查看器没有可绑定的范围.没有宽度的画布被认为是我能看到的无限宽.虽然这与拖动将一段内容放在当前视图之外的概念不同.
只要添加宽度,它就会定义一个有限区域以滚动并显示滚动条.