我有一个显示两个滚动条的ListView。为了达到这个目的,我将ListView放在一个位于Grid中的Border中,如下所示:
<Window ...
MinWidth="600" MinHeight="500" Width="800" Height="500"
Topmost="True"
WindowStartupLocation="CenterScreen"
SizeToContent="Height" WindowStyle="None">
<Window.Resources>
<ResourceDictionary>
...
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*" MinHeight="60"/>
<RowDefinition Height="48"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="32"/>
<RowDefinition Height="370"/> <-- THIS IS HARDCODED TO 370 BUT I NEED IT TO BE RESIZABLE
</Grid.RowDefinitions>
<Grid Margin="5,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4"/>
<ColumnDefinition Width="346*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding MyName}" Grid.Column="1"
Style="{StaticResource MyNameStyle}" Margin="0,5,0,5" />
</Grid>
<Border BorderBrush="{StaticResource MyBrush}" Grid.Row="1" Grid.Column="0" >
<ListView
x:Name="lstMyListView"
Margin="0,0,0,0"
BorderBrush="Transparent"
ItemsSource="{Binding MyItems}"
SelectedIndex="0"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto">
...
...
</ListView>
...
...
</Border>
...
...
</Grid>
</Grid>
</Window>
这是一个可调整大小的形式。因此,ListView也应该调整大小,但只有在用户调整表单大小时才应该这样做。上面我的硬编码值的问题很明显,ListView不会调整大小但保持恒定高度= 370。
我知道我可以将其设置为370 *但在这种情况下,我的列表将调整大小以适合所有项目。我想限制它,以便仅在用户调整表单大小时才会调整大小。因此,如果有更多项目,ListView应显示滚动条,并且当用户调整表单大小时,如果将表单调整为可容纳ListView中所有项目的高度,则该滚动条应该消失。
更新 我没有将高度硬编码到370以上,而是尝试将高度设置为,Auto和370 。所有这些都将扩展ListView(因此也形成)以容纳ListView中的所有项目。
更新2: 更新了XAML以显示整个树结构。
更新3: 根据Rachel的建议,在XAML上面的注释行中将硬编码370设置为“*”,并生成调整大小的表单,以便ListView适合其中的所有项目。我添加了截图,显示了打开时的表单以及显示打开时应该如何显示的截图。正如你所看到的,它可以调整大小以适应所有这些。
我需要的是表单和ListView保持其设置大小并仅在用户调整表单大小时调整大小。
答案 0 :(得分:1)
如果我正确理解你的问题,你就是说表单加载的大小太大,因为ListView正在增长到它的全高。如果是这种情况,请从SizeToContent="Height"
标记中移除<Window>
,因为它使窗口的初始高度等于内容的任何高度,其中包括完整大小ListView
。
答案 1 :(得分:1)
通过设置 ScrollViewer.VerticalScrollBarVisibility="Visible" & MaxHeight="700" 滚动条将可见 MaxHeight 为任意值
答案 2 :(得分:0)
嗨,我想我已经了解你了。所以,我正在努力:
因此,您希望 ListView 至少高度为370,然后只有调整大小,如果窗口 调整大小(窗口大小的增量和减量)。
设置第二行定义的MinHeight可以提供帮助
NSPredicate(format: "kategorie == %d", kategorie.katid?.intValue ?? 0)
谢谢。