0

好的,ScrollViewerItemsControlStackPanel.

问题是滚动工作,但是:

  • 无论用户向下滚动多少,表格的底线都不可见
  • 当滚动是......“释放”时,表格弹回......

<ScrollViewer Height="Auto">
    <ItemsControl ItemsSource="{Binding Items, Mode=TwoWay}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Grid VerticalAlignment="Top" Margin="0,0,0,0" x:Name="ResTable">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="0.10*"/>
                        <ColumnDefinition Width="0.30*" />
                        <ColumnDefinition Width="0.30*"/>
                        <ColumnDefinition Width="0.30*"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Column="0" Text="{Binding [num]}" HorizontalAlignment="Center" />
                    <TextBlock Grid.Column="1" Text="{Binding [A]}" HorizontalAlignment="Center" />
                    <TextBlock Grid.Column="2" Text="{Binding [B]}" HorizontalAlignment="Center" />
                    <TextBlock Grid.Column="3" Text="{Binding [C]}" HorizontalAlignment="Center" />
                </Grid>
            </DataTemplate>

        </ItemsControl.ItemTemplate>
    </ItemsControl>
</ScrollViewer>

有任何想法吗?


附言

  • 我已经查看了类似问题的其他一些答案,但似乎没有一个有效......

  • 我的主要想法是显示一个带有固定标题和可滚动内容(通过绑定填充)的表格 - 好的,页面顶部还有一些东西(我的意思是表格除外)

4

1 回答 1

2

我想问题是您可能应该使用像Grid这样的父元素,而不是StackPanel,因为StackPanel在使用滚动等调整子项的大小时有其缺点。

<Grid>
<Grid.RowDefinitions>
   <RowDefinition Height="Auto"/>
   <RowDefinition Height="*"/>
</Grid.RowDefinitions>

<!-- Put headers in Grid.Row="0" -->

<!-- Put Scrollviewer in Grid.Row="1" --> 

</Grid>

Height="Auto"可以从ScrollViewer中删除属性,您可能希望使用VerticalAlignment="Stretch"for item 来占用所有可用空间。我希望这是你想要达到的目标。

于 2013-06-19T11:49:30.560 回答