gpt4 book ai didi

c# - 如何使 WPF StackPanel 适合网格单元格

转载 作者:太空狗 更新时间:2023-10-29 19:59:47 30 4
gpt4 key购买 nike

我的 WPF 项目中有一个 StackPanel 控件,它位于 Grid 的第 0 列第 2 行中。如何将 StackPanel 大小自动调整为该网格单元格的大小?将 StackPanel 的宽度和高度设置为“自动”只会根据其内容调整大小。我可以明确地将其宽度和高度设置为数值,但我想知道是否有更清晰、更准确的方法。谢谢。

相关 XAML:

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="74*"/>
<RowDefinition Height="74*"/>
<RowDefinition Height="421*"/>
</Grid.RowDefinitions>
<Label Content="{StaticResource LoginWindow_Title}" Style="{StaticResource TitleH1}" Grid.ColumnSpan="2"/>
<Label Content="{StaticResource LoginWindow_Subtitle}" Style="{StaticResource TitleH2}" Grid.Row="1" Grid.ColumnSpan="2"/>
<Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Center" Grid.Row="2" VerticalAlignment="Top">
<StackPanel HorizontalAlignment="Left" Grid.Row="2" VerticalAlignment="Top">
<Label Content="Log in"/>
</StackPanel>
</Border>
</Grid>

最佳答案

您的StackPanel 不在Grid 中,它在Border 中。因此,为了让它占用所有可用空间,您可以将水平和垂直对齐方式设置为 Stretch 及其父 Border:

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="74*"/>
<RowDefinition Height="74*"/>
<RowDefinition Height="421*"/>
</Grid.RowDefinitions>

<Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
BorderBrush="Black" BorderThickness="1" Grid.Row="2">
<StackPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Label Content="Log in"/>
</StackPanel>
</Border>
</Grid>

即便如此,就像其他人提到的那样,在这种情况下,其他一些小组几乎肯定会更好。

关于c# - 如何使 WPF StackPanel 适合网格单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20147655/

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