0

我从数据库中填充了一些文本(我将它们命名为问题),但在我的换行面板中我只能显示 3 个问题,其余问题被截断,我有超过 3 个问题,我该如何进行分页包装面板以在面板本身上显示其余问题?我通过 for 循环填充问题,如下所示:

 for( int i= 0 ; i<lstQuestion.Count()-2; i++)
        {
            TextBlock tb = new TextBlock(); // Question 
            tb.FontSize = 19;
            tb.FontWeight = FontWeights.Bold;
            tb.Text = lstQuestion[i].QuestionContent;
            tb.TextWrapping = TextWrapping.Wrap;
            wrapPanel1.Children.Add(tb);



            TextBox tbox = new TextBox();
            if (lstQuestion[i].Answer.Trim().Length > 0) // Textbox for user to input answer in every question
            {

                tbox.FontSize = 19;
                tbox.Width = 250;
                tbox.Height = 50;
                tbox.PreviewDrop += new DragEventHandler(tbox_PreviewDrop);
                tbox.Focusable = false; // Disallow user to input anything into it.
                wrapPanel1.Children.Add(tbox);
            }

            answers.Add(lstQuestion[i].Answer);

            if (lstQuestion[i].QuestionNo != lstQuestion[i + 1].QuestionNo) // add spacing between question
            {
                StackPanel sp = new StackPanel();
                sp.Width = 1010;
                wrapPanel1.Children.Add(sp);
                Label spacing = new Label();
                spacing.Width = 1010;
                spacing.Content = "";
                wrapPanel1.Children.Add(spacing);
            }

        } // end of for each loop.

在我的 xaml 中:

<Grid>
    <WrapPanel  HorizontalAlignment="Center"  Name="wrapPanel1" VerticalAlignment="Center"  Height="400" Width="1038" Margin="0,77,0,43" />
    <WrapPanel Height="80" HorizontalAlignment="Center"  Name="wrapPanel2" VerticalAlignment="Top"  Background="Aquamarine" Width="1000">
    </WrapPanel>
    <Button Content="Check" Height="37" HorizontalAlignment="Center"  Name="button1" VerticalAlignment="Bottom" Width="90"  FontSize="24" Margin="474,0" Click="button1_Click" />

</Grid>

Wrappanel1 是我放置问题和文本框的地方(wrappanel 1 是我想要在其中进行分页的面板),wrappanel2 是另一个可以选择答案的面板。

在此处输入图像描述

从灰色箭头可以看出,还有更多的文字,但它只是停在滚动的末尾。

4

1 回答 1

1

将您的 wrapPanel1 放入ScrollViewer.

<ScrollViewer VerticalAlignment="Center" HorizontalAlignment="Center" Height="400" Width="1038">
    <WrapPanel  Name="wrapPanel1" />
</ScrollViewer>

尝试在 XAML 中安排你的 UIRowDefinitions

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="80"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="40"></RowDefinition>
    </Grid.RowDefinitions>

    <WrapPanel Grid.Row="0" HorizontalAlignment="Center" Name="wrapPanel2" Background="Aquamarine" Width="1000"></WrapPanel>

    <ScrollViewer Grid.Row="1" Height="400" Width="1038" CanContentScroll="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
        <WrapPanel Name="wrapPanel1"/>
    </ScrollViewer>

    <Button Grid.Row="2" Content="Check" Margin="5" HorizontalAlignment="Center" Name="button1" VerticalAlignment="Bottom" Width="90" FontSize="24" Click="button1_Click" />
</Grid>
于 2013-07-30T06:02:47.107 回答