是什么导致此StackPanel滚动问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是什么导致此StackPanel滚动问题?相关的知识,希望对你有一定的参考价值。
我有一个包含客户名称信息的客户页面。此页面包含一个StackPanel,并且在此StackPanel中有一个ScrollViewer,在ScrollViewer中有另一个StackPanel。
我正在动态添加一些StackPanel。在StackPanel内部,我正在后面动态添加TextBlock,其中包含文本。然后添加InkPresenter以显示分隔。
我的问题是,每次尝试使用该页面时,添加后,它都不会滚动。实际上,如果我向上滑动页面,页面将下降并返回。
XAML:
<StackPanel>
<ScrollViewer Margin="0,-20,0,0" Grid.RowSpan="2" >
<StackPanel Height="Auto" x:Name="pottilelist" >
</StackPanel>
</ScrollViewer>
</StackPanel>
StackPanel stk = new StackPanel();
stk.Name = g.id.ToString();
stk.Tap += new EventHandler<System.Windows.Input.GestureEventArgs>(Customer_Click);
TextBlock tbx = new TextBlock();
tbx.Text = g.customername;
tbx.Name = "A" + g.id.ToString();
tbx.FontSize = 36;
tbx.Tap += new EventHandler<System.Windows.Input.GestureEventArgs>(Customer_Click);
tbx.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
stk.Children.Add(tbx);
InkPresenter ink = new InkPresenter();
ink.Height = 4;
ink.Background = Brush3;
ink.Margin = new Thickness(0, 0, 0, 20);
stk.Children.Add(ink);
pottilelist.Children.Add(stk);
在一个应用程序中,它起作用了,但在另一个应用程序中却没有。
答案
[尝试将scrol查看器放在包含所有页面内容的布局网格(主网格)周围。我认为这应该可以解决问题。
只要您正在使用数据透视模板,只需将其放在网格周围该数据透视项目减速之后,它就可以工作!
<phone:PivotItem Header="PivotItem">
<ScrollViewer>
<Grid x:Name="LayoutRoot" Background="#7F000000" >
另一答案
这取决于您的堆栈面板在网格中的放置位置。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="1">
<ScrollViewer>
<StackPanel></StackPanel>
</ScrollViewer>
</StackPanel>
</Grid>
在上面的代码中,由于高度,scrollviewer将按预期工作。如果您已在其视觉树中设置了位置的高度,则scrollviewer可能不会滚动。
另一答案
我已经解决了问题。当堆栈面板或scrollviewer没有高度时,会发生此问题。 身高问题
以上是关于是什么导致此StackPanel滚动问题?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 ScrollViewer 在 StackPanel 中工作?
XAML/WPF - 里面有 StackPanel 的 ScrollViewer 不滚动