【问题标题】:WPF Grid Center and Stretch TextboxWPF 网格中心和拉伸文本框
【发布时间】:2013-03-28 09:59:59
【问题描述】:

我有一个 WPF 网格,其中行和列 0 作为标签。我希望第一列是 20 的静态值,但我希望其余列伸展到它们的可用空间,直到它们达到最大宽度,并且我希望网格即使在行达到最大宽度后仍保持居中。如果我使用 Grid Horizo​​ntalAlignment="Center" 每列宽度等于该行内容的宽度,这对于一个充满空文本框的列来说看起来不是很好。如果我使用 Grid Horizo​​ntalAlignment="Stretch" 它完全符合我的要求,但在列达到最大宽度后 Grid 没有居中,它是左对齐的。有没有办法使网格居中并拉伸列?附件是我的网格的一部分 xaml。

谢谢。

<Expander Margin="10,10,10,10" Header="Expander">
    <Grid Margin="10,10,10,10" HorizontalAlignment="Center">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="20" />
            <ColumnDefinition Width="*" MaxWidth="200"/>
            <ColumnDefinition Width="*" MaxWidth="200" />
            <ColumnDefinition Width="*" MaxWidth="200" />
         </Grid.ColumnDefinitions>
         <Grid.RowDefinitions>
             <RowDefinition />
             <RowDefinition />
         </Grid.RowDefinitions>
         <Label Content="Ax" HorizontalContentAlignment="Center" Grid.Column="1" Grid.Row="0"/>
         <Label Content="0" HorizontalContentAlignment="Center" VerticalAlignment="Center" Grid.Column="0" Grid.Row="1" />
         <TextBox Name="AxK00" Margin="1,1,1,1" HorizontalContentAlignment="Center" Grid.Column="1" Grid.Row="1" />
         <TextBox Name="AyK00" Margin="1,1,1,1" HorizontalContentAlignment="Center" Grid.Column="2" Grid.Row="1" />
         <TextBox Name="AzK00" Margin="1,1,1,1" HorizontalContentAlignment="Center" Grid.Column="3" Grid.Row="1" />
    </Grid>
</Expander>

【问题讨论】:

    标签: wpf grid center stretch


    【解决方案1】:

    当您的列达到它们的 MaxWidth 时,Grid 有一个 Horizo​​ntalAlignment=Stretch,这意味着 Grid 将扩展以填充空间,除非您给它一个 Width。尝试将 Grid 的 MaxWidth 设置为 620(MaxWidths 的总和)或类似的值。您的 Grid 将拉伸以填充您的最大尺寸,但仍然足够小以使 Horizo​​ntalAlignment =Center 可以观察到。

    【讨论】:

      猜你喜欢
      • 2021-05-04
      • 2018-01-31
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多