gpt4 book ai didi

wpf - 将网格行的高度绑定(bind)到 WPF 中的内容

转载 作者:行者123 更新时间:2023-12-04 00:08:23 25 4
gpt4 key购买 nike

我有一个有几行的网格。在第一行,我有一个 ItemsControl,它动态绑定(bind)到一个集合并使用 DataTemplateSelector 和 ItemsPanelTemplate(带有一个水平排列的 WrapPanel)。这是我迄今为止所拥有的精简版:

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="2" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<GridSplitter Background="#666" Grid.Row="1" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<ItemsControl x:Name="items" Background="#DDD" Grid.Row="0" ItemTemplateSelector="{StaticResource itemTemplateSelector}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Grid>

我不想将第一行的高度设置为 40,而是根据 ItemsControl 必须适合其所有内容的最小高度动态设置它。由于 ItemsControl 的高度受 Grid Row 的高度限制,我无法确定我应该绑定(bind)哪个元素以及我应该将它绑定(bind)到哪个元素的属性。

将网格行的高度绑定(bind)到 ItemsControl 的“所需高度”是有意义的。因此,我找到了 DesiredSize 属性并将我的 RowDefinition 的高度绑定(bind)到 ItemsControl 的 DesiredSize.Height。这在它第一次加载时有效,但在我调整控件大小时不会更新(请记住,我使用 WrapPanel 作为我的 ItemsPanelTemplate,所以当我调整窗口大小时,ItemsControl 的高度应该会改变)。

有谁知道绑定(bind)框架是否支持这种情况,或者我是否需要添加事件处理程序代码来完成此操作?

谢谢。

最佳答案

您是否尝试将高度设置为 Auto 以实现您想要的:

<RowDefinition Height="Auto"/>

(或者我在这里想得太简单了..?)

关于wpf - 将网格行的高度绑定(bind)到 WPF 中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/837936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com