固定scrollview外部的页眉和页脚

时间:2019-03-18 21:47:46

标签: wpf visual-studio xaml

我有一个包含页眉,内容和页脚的网格:

<Grid.RowDefinitions>
        <RowDefinition Height="55"/> <!--HEADER-->
        <RowDefinition Height="*"/> <!--CONTENT-->
        <RowDefinition Height="55"/> <!--FOOTER-->
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="30"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="30"/>
    </Grid.ColumnDefinitions>
 <Rectangle Grid.Row="0" Grid.ColumnSpan="3"></Rectangle>
 <ScrollViewer Grid.Row="1" Grid.Column="1" >
    <Grid>
    ...
    </Grid>
 </ScrollViewer>
 <Rectangle Grid.Row="3" Grid.ColumnSpan="3"></Rectangle>
</Grid>

我想拥有它以便固定页眉和页脚并且内容可滚动。在第二个嵌套网格中,有很多内容,因此是滚动视图。当我运行该应用程序时,scrollviewer仍将使用页眉和页脚滚动!我不知道自己在做什么错,应该使用更好的布局吗?

请让我知道!我宁愿不使用C#。

谢谢!

1 个答案:

答案 0 :(得分:1)

除非围绕发布的XAML或在嵌套的Grid对象中进行了奇怪的操作,否则XAML会按预期工作。 我对您的XAML进行了少许修改,只是为了明显显示您的页眉和页脚,并向内部网格添加一些内容。

<Grid>
    <Grid.RowDefinitions>
    <RowDefinition Height="55"/><!--HEADER-->
    <RowDefinition Height="*"/><!--CONTENT-->
    <RowDefinition Height="55"/><!--FOOTER-->
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="30"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Rectangle Grid.Row="0" Grid.ColumnSpan="3" Height="55" Fill="Red"/>
<ScrollViewer Grid.Row="1" Grid.Column="1" >
    <Grid >
      <ListBox ItemsSource="{Binding Path=myItems, FallbackValue='123456789abcdefghijklmno'}"/>
    </Grid>
</ScrollViewer>
<Rectangle Grid.Row="3" Grid.ColumnSpan="3" Height="55" Fill="Blue"/>
</Grid>

结果如下所示。您的ScrollViewer滚动得很好,同时保留了页眉和页脚。 我不确定窗口中还有什么其他功能,但这是我用于测试的窗口中唯一的XAML,它可以完美地工作。需要注意的是,我将窗口的高度限制为“ 400”,因此内部网格由于高度设置为*而不会继续增长。通过在外部Grid上设置最大高度,可以达到相同的结果。

enter image description here