gpt4 book ai didi

wpf - 网格 SharedSizeGroup - 列在无限循环中弹跳、调整大小

转载 作者:行者123 更新时间:2023-12-02 00:09:52 25 4
gpt4 key购买 nike

我需要带有水平和垂直标题的表格(简单的 PivotGrid)。我在这里发现了一些类似(或几乎相同)的问题,但没有人给出解决方案。在 XAML 中我定义了这个结构:

<Grid x:Name="grdMain" Background="White" Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Grid.Column="1" x:Name="grdHorizontalHeader">
<!-- place for column definitions and header labels defined in code -->
</Grid>
<Grid Grid.Row="1" Grid.Column="0" x:Name="grdVerticalHeader">
<!-- place for column definitions and header labels defined in code -->
</Grid>
<Grid Grid.Row="1" Grid.Column="1" x:Name="grdContent">
<!-- place for column definitions and header labels defined in code -->
</Grid>
</Grid>

因此,两个标题都由带有一些 ColumnDefinitions(或 RowDefinitions)的网格组成,我需要根据 Content-ColumnDefinitions 调整 Header-ColumnDefinitions 的大小。我用代码实现:

foreach (var row in myColumnSource)
{

// Content columns definitions

var cD = new ColumnDefinition();
cD.Width = GridLength.Auto;
cD.SharedSizeGroup = "ColumnSharedSizeGroup" + row.Value;
this.grdContent.ColumnDefinitions.Add(cD);

// Header columns definitions

var cD2 = new ColumnDefinition();
cD2.Width = GridLength.Auto;
cD2.SharedSizeGroup = "ColumnSharedSizeGroup" + row.Value;
this.grdHorizontalHeader.ColumnDefinitions.Add(cD2);
...

因此 Header-Column 应与 Content-Column 共享其宽度。但是当我运行程序时,列会无限循环地弹跳和调整大小。行的高度共享工作正常。问题可能出在哪里?

编辑仅标题 (grdHorizo​​ntalHeader) 中的列正在调整大小。 grdContent 中的列具有正确且稳定的宽度。

最佳答案

网格控件的自动调整大小算法有时可能很挑剔。

您是否尝试过在每个列/行上设置 MinWidth?

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="30" />
<ColumnDefinition Width="Auto" MinWidth="30" />
<ColumnDefinition Width="Auto" MinWidth="30" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="15" />
<RowDefinition Height="Auto" MinHeight="15" />
<RowDefinition Height="Auto" MinHeight="15" />
</Grid.RowDefinitions>

不是 super 优雅,但为我们解决了同样的问题。

关于wpf - 网格 SharedSizeGroup - 列在无限循环中弹跳、调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8037517/

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