wpf - ListBox 项需要占据 Grid 行的整个高度
问题描述
在我的 WPF 应用程序中,我ListBox
放置了Grid
一行。我希望列表项占据行的高度,而不管列表中有多少项。因此,当列表中只有一项时,它应该是该行的高度。如果列表中有两个项目,它们应该一起占据行的总高度。当前,当列表中有一项时,其高度变得小于行高。
我的 XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<!-- there are other controls in grid row 0, 1 and 2 -->
<ListBox x:Name="CustomerListBox" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3"
ItemsSource="{Binding CustomersCollection}"
HorizontalContentAlignment="Stretch"
SelectedItem="{Binding SelectedCustomer, Mode=TwoWay}"
VerticalContentAlignment="Stretch" SelectionMode="Single">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="DockPanel.Dock" Value="Top" />
</Style>
</ListBox.ItemContainerStyle>
<!--<ListBox.ItemsPanel>
<ItemsPanelTemplate >
<UniformGrid Columns="1" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>-->
<ListBox.ItemTemplate>
<DataTemplate >
<uiView:CustomerUserControl Margin="0.5,0,0,-10"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
当我取消注释该ItemsPanelTemplate
部分时,由于 UniformGrid 放置在项目面板中,它按预期工作,但由于其他一些原因,我不想为此 ListBox 使用 ItemsPanelTemplate。有什么方法可以让项目占据网格行的整个高度而不使用统一网格和 ItemsPanelTemplate?
解决方案
推荐阅读
- java - 用 QuerydslJpaPredicateExecutor 替换已弃用的 QuerydslJpaRepository 失败
- python - Bokeh 属性更新不会在不从 curdoc 中删除模型的情况下更新模型
- selenium - 在无头机器上的 remoteseleniumwebdriver 上配置 linux 浏览器的问题
- php - how to unset permision folder html
- javascript - Summing 2 dynamic cell values
- php - 使用 PHP 压缩文件并附加到电子邮件
- javascript - Filters per column in a javascript table (Angular) combined results
- google-fabric - Fabric“现在您的应用程序中的活动”映射在 Windows 上的 chrome 上不起作用
- google-app-engine - App Engine Standard Nodejs8 ignore memory_gb in resources
- javascript - 将字符串与 HTML 文本进行比较