gpt4 book ai didi

.net - 为什么带有 * 的 WPF 网格中的两列不具有相同的大小?

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

使用以下代码,我希望以两个具有相同宽度的 ListBox 结束,因为它们进入两个列定义,并带有“*”

而不是这看起来像大小是根据文本的大小确定的 ListBox 这没有意义,因为此文本比 ListBox 小得多,因此 TextBlock 有足够的空间来容纳文本。

<Window x:Class="UnderstandSizing.Window5"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window5"
SizeToContent="WidthAndHeight"
ResizeMode="NoResize" >

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<TextBlock Text="Text1longer" Grid.Row="0" Grid.Column="0" x:Name="Test1" />
<TextBlock Text="Text1" Grid.Row="0" Grid.Column="2" />
<ListBox Grid.Row="1" Grid.Column="0" Height="150" />

<ListBox Grid.Row="1" Grid.Column="2" Height="150" />
<TextBlock Grid.Row="2" Grid.ColumnSpan="3" Text="This textblock sets the max width" Width="300" />
</Grid>
</Window>

enter image description here

WPF 自动调整大小功能让我发疯......有什么想法吗?
谢谢。

编辑:在 VS2008 中完成的一切,以防万一。

最佳答案

看这个:

http://www.wpftutorial.net/GridLayout.html

“星星 (*):

占用尽可能多的可用空间(在填充所有自动和固定大小的列之后),按比例分配给所有星形大小的列。所以 3*/5* 与 30*/50* 的意思相同。 请记住,如果网格大小是根据其内容计算的,则星级调整不起作用。

您的代码就是这种情况。我怀疑这也是其他人测试它看起来不错的原因,如果他们将 Grid 粘贴到一个大于 TextBlock 设置的 300 像素的窗口中。如果我使用完全相同的 XAML,我会遇到与您相同的问题。

编辑:所以这就是“为什么”。有关可能的替代解决方案,请参阅此问题:Wpf: Grid: How can i share column/row height width?

在这种情况下,最近的答案(不是提问者选择的答案)似乎是最有用的答案。

关于.net - 为什么带有 * 的 WPF 网格中的两列不具有相同的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9100405/

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