好的,我在ScrollViewer
内使用ItemsControl
(包含StackPanel
)时遇到问题。
然而,事情是滚动工作:
<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>
有什么想法吗?
P.S。
我已经看过类似问题的其他一些答案,但似乎都没有起作用......
我的主要想法是显示一个表格,带有固定标题,以及可滚动的内容(通过Bindings填充) - 好的,还有一些东西在顶部页面(除了表格之外)
答案 0 :(得分: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>
还可以从 ScrollViewer 中删除Height="Auto"
属性,您可能希望使用VerticalAlignment="Stretch"
项来获取所有可用空间。我希望这是你想要实现的目标。