是什么导致这个? StackPanel滚动问题

时间:2014-02-11 07:48:47

标签: c# windows-phone-7 layout windows-phone-8

我有一个客户页面,其中包含客户名称的信息 此页面包含 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);

在一个应用程序中它起作用,但在另一个应用程序中它没有。你能救我吗?

3 个答案:

答案 0 :(得分:0)

尝试将滚动查看器放在包含所有页面内容的布局网格(主网格)周围。我认为这应该可以解决问题。

只要您使用数据透视表模板,只需将其放在网格周围的枢轴项目减速后就可以了,它应该有效!

<phone:PivotItem Header="PivotItem">

            <ScrollViewer>

            <Grid x:Name="LayoutRoot" Background="#7F000000" >

答案 1 :(得分:0)

这取决于您的堆叠面板放置在网格内的位置。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="100"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <StackPanel Grid.Row="1">
        <ScrollViewer>
            <StackPanel></StackPanel>
        </ScrollViewer>
    </StackPanel>
</Grid>

在上面的代码中,由于高度的原因,scrollviewer将按预期工作。 如果您在可视树中设置了位置的高度,则scrollviewer可能无法滚动。

答案 2 :(得分:0)

我已经解决了这个问题。当stackpanel或scrollviewer没有高度时会发生此问题。 高度问题