我正在使用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的
答案 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}">
希望有所帮助。
伊恩