我有一个包含页眉,内容和页脚的网格:
<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#。
谢谢!
答案 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
上设置最大高度,可以达到相同的结果。