gpt4 book ai didi

.net - WPF 网格 SharedSizeGroup 错误

转载 作者:行者123 更新时间:2023-12-02 20:53:38 26 4
gpt4 key购买 nike

如果您运行此代码并单击选项卡 2,然后返回选项卡 1,应用程序就会变得疯狂并开始来回弹跳列宽。关于如何解决这个问题有什么建议吗?

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="350"
Width="525">
<Grid IsSharedSizeScope="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto"
SharedSizeGroup="Col3" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<TextBlock Text="Label 1"
Grid.Row="0"
Grid.Column="0" />

<TextBox Grid.Column="1"
Grid.Row="0"
Text="TextBox 1" />

<TextBlock Text="Label 2"
Grid.Row="0"
Grid.Column="2" />

<TextBox Grid.Column="3"
Grid.Row="0"
Text="TextBox 2" />

<DockPanel Grid.Row="1"
Grid.Column="2"
Grid.ColumnSpan="2">

<TabControl>
<TabItem Header="Tab 1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Col3" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="Tab 1: Short Text.."
Grid.Row="0"
Grid.Column="0" />

</Grid>
</TabItem>
<TabItem Header="Tab 2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Col3" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="Tab 2: Short Text.."
Grid.Row="0"
Grid.Column="0" />
<TextBlock Text="Tab 2: Long Text..................................... "
Grid.Row="1"
Grid.Column="0" />
</Grid>
</TabItem>
</TabControl>
</DockPanel>
</Grid>
</Window>

这是从类似的应用程序中剥离出来并大大简化的。问题的根源是 SharedSizeGroup“Col3”。在实际的应用程序中,还有其他项目共享该列,因此我无法删除 SharedSizeGroup,除非有其他方法来完成所需的行为。

最佳答案

在父元素 (TabControl) 上将附加属性 Grid.IsSharedSizeScope 设置为 True 应该会停止层次结构上方的大小共享传播。就像这样:

<TabControl Grid.IsSharedSizeScope="True">

TabControl 内,尺寸将对齐。

关于.net - WPF 网格 SharedSizeGroup 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3063468/

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