根据列在 WPF 网格中的内容重新调整列的大小

本文关键字:新调整 调整 WPF 网格 | 更新日期: 2023-09-27 18:33:24

当我们调整窗口大小时,我正在尝试根据其内容调整第 4 列中的内容演示器的大小。但它的行为方式不是我想要的。你们能帮我解决这个问题吗?

 <Grid Name="PART_grid1">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="1"/>
                                <ColumnDefinition Width="10"/>
                                <ColumnDefinition Width="22"/>
                                <ColumnDefinition Width="5"/>
                                <ColumnDefinition Width="27*"/>
                                <ColumnDefinition Width="10"/>
                                <ColumnDefinition Width="1"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="8"/>
                                <RowDefinition Height="21"/>
                                <RowDefinition Height="8"/>
                            </Grid.RowDefinitions>
                            <Path Data="M74,37L0,37 0,0 74,0z"  Grid.Column="1" Grid.Row="0" Stretch="Fill"  Grid.RowSpan="3" Grid.ColumnSpan="5">
                                <Path.Fill>
                                    <LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1">
                                        <GradientStop Color="#FFF9F9F9" Offset="0"/>
                                        <GradientStop Color="#FFD7D7D7" Offset="1"/>
                                    </LinearGradientBrush>
                                </Path.Fill>
                            </Path>
                            <Path Data="F1M0,37L1,37 1,0 0,0z" Grid.Column="7" Grid.Row="0" Grid.RowSpan="3" Fill="#FF7D7D7D" />
                            <Path Data="F1M0,37L1,37 1,0 0,0z" Grid.Column="0" Grid.Row="0" Grid.RowSpan="3" Fill="White"/>

                            <Grid Grid.Column="2" Grid.Row="1">
                                <!--Image-->
                            </Grid>
                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Grid.Column="4" Width="Auto" Grid.Row="1" />
                        </Grid>

根据列在 WPF 网格中的内容重新调整列的大小

在列定义中使用Auto

<ColumnDefinition Width="Auto" />

它将自动适应内容。它应该在主网格的列定义中。目前你的价值是5所以它非常狭窄。