【发布时间】:2017-11-16 01:15:12
【问题描述】:
如何阻止我的列表视图控件溢出?
MainWindow.xaml 是一个汉堡菜单,左侧是菜单,右侧是views.accounts.xaml。
Views.Accounts.xaml:
<UserControl>
<Grid Background="White">
<!--Define 2 Rows-->
<Grid.RowDefinitions>
<RowDefinition Height="48"/>
<RowDefinition/>
</Grid.RowDefinitions>
<!--Header-->
<Border Grid.Row="0" Background="#FF444444"...>
<Grid Grid.Row="1" Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="250"/>
</Grid.ColumnDefinitions>
<!--Options-->
<StackPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"...>
<!--Content area-->
<Grid Grid.Row="1" Grid.Column="0" Margin="0 20 0 0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="0">
<ListView Style="{StaticResource VirtualisedMetroListView}"
MinHeight="250" Name="accountsListView">
<ListView.View>
<GridView>
<GridViewColumn Header="Username" DisplayMemberBinding="{Binding username}"/>
<GridViewColumn Header="Password" DisplayMemberBinding="{Binding password}"/>
<GridViewColumn Header="Email" DisplayMemberBinding="{Binding email}"/>
<GridViewColumn Header="Verified" DisplayMemberBinding="{Binding verified}"/>
</GridView>
</ListView.View>
</ListView>
</ScrollViewer>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Content="Clear" Width="74" Click="clear_Click"/>
<Button Margin="10 0 0 0" Content="Export" Width="74"/>
</StackPanel>
</Grid>
</Grid>
<!--Settings-->
<Grid Grid.Row="1" Grid.Column="1" Margin="10 10 0 10">
</Grid>
</Grid>
</UserControl>
【问题讨论】:
-
由于您没有提供好的minimal reproducible example,因此尝试编写实际答案是不切实际的。但是根据您共享的少量信息,您的问题似乎是,将
ListView嵌套在StackPanel内(一个元素可以为其子级提供尽可能多的空间......它只是剪辑超出大小的任何内容),ListView无法知道它应该显示滚动条。不清楚你为什么在这里使用StackPanel。看起来你最好在网格中有两行,第二行有Height=Auto。 -
@PeterDuniho 我尝试使用 2 行网格而不是堆栈面板。它仍然没有工作。
-
@PeterDuniho 用更多代码更新了我的问题。
-
StackPanel是这里的问题。你能把它去掉吗?如果您将Listview直接包装在一个网格中,您甚至不需要添加特定的Scrollviewer。