Silverlight:无法让ScrollViewer和WrapPanel一起工作

时间:2009-05-22 08:55:00

标签: silverlight scrollviewer wrappanel

我正在使用WrapPanel格式化一些文本。在运行时,我将TextBlocks和StackPanels添加为Children。显然我需要一个滚动条,具体取决于数据大小。在网上搜索我发现了多个答案,这些答案都建议将ScrollViewer放在WrapPanel周围。这对我来说很有意义,但我无法让它发挥作用。这是我的代码:

scrollView = new ScrollViewer();
scrollView.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled;
scrollView.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
scrollView.HorizontalAlignment = HorizontalAlignment.Stretch;
scrollView.VerticalAlignment = VerticalAlignment.Stretch;
scrollView.Margin = new Thickness(0);
scrollView.BorderThickness = new Thickness(0);  

textPanel = new WrapPanel();
textPanel.Width = Width;
scrollView.Content = textPanel;

这不起作用。 ScrollViewer似乎随着包含的WrapPanel而增长。如果我将垂直滚动条设置为可见,我可以看到滚动条随内容增长。但是ScrollViewer在包含窗口之外生长,因此不会显示任何滚动条。

任何提示我可能做错了什么?

欢呼声, Achim的

1 个答案:

答案 0 :(得分:3)

您需要一些东西来限制WrapPanel和ScrollViewer的大小 - 您可以设置查看器的宽度和高度,然后在wrappanel上使用元素绑定:

 <ScrollViewer x:Name="ScrollViewer1" 
Width="200" 
Height="200"  
ScrollViewer.VerticalScrollBarVisibility="Visible"
  ScrollViewer.HorizontalScrollBarVisibility="Visible" >
                <controls:WrapPanel 
                      Width="{Binding ElementName=ScrollViewer1, Path=Width}" 
                      Height="{Binding ElementName=ScrollViewer1, Path=Height}">

希望有所帮助。

伊恩