Scrollviewer上的Silverlight Canvas不会触发

Fre*_*ick 1 silverlight wpf

为什么这在wpf中运行良好

<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Canvas x:Name="MyDesigner">
</Canvas>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

现在,当我在Silverlight中执行相同操作并加载"可以拖动"的控件时,滚动条不会被触发,当我拖出视图时,没有任何反应...但是在wpf中它会自动显示它们...

And*_*rew 7

作为对正常'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中向左显式创建内容,未设置画布宽度意味着滚动查看器没有可绑定的范围.没有宽度的画布被认为是我能看到的无限宽.虽然这与拖动将一段内容放在当前视图之外的概念不同.

只要添加宽度,它就会定义一个有限区域以滚动并显示滚动条.