【问题标题】:WPF grid column 50% widthWPF 网格列 50% 宽度
【发布时间】:2022-01-13 17:12:48
【问题描述】:

我的网格布局中需要 3 列,看起来像这样:

  1. 50% 的窗口
  2. 其他地方
  3. 30 像素宽

但是我无法设置这个,你们有没有想法实现这个?

我试着玩弄*,但它总是解析宽度而没有固定宽度的列,看起来不太好。

所以这并没有达到我所需要的:

               <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="30"/>
            </Grid.ColumnDefinitions>

感谢您的帮助, 大卫。

【问题讨论】:

    标签: wpf grid-layout column-width


    【解决方案1】:

    我将创建带有两列的Grid,并在第二列中创建另一个Grid

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Grid Grid.Column="1">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="30"/>
            </Grid.ColumnDefinitions>
        </Grid>
    </Grid>
    

    另一种选择是处理WindowSizeChanged 事件并计算第一列的宽度。

    <Grid x:Name="MyGrid">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="30"/>
        </Grid.ColumnDefinitions>
    </Grid>
    

    后面的代码

    private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        MyGrid.ColumnDefinitions[0].Width = new GridLength(e.NewSize.Width / 2);            
    }
    

    【讨论】:

    • 我没有考虑将新网格添加到网格列,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-06-25
    • 2019-10-09
    • 2018-09-03
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    相关资源
    最近更新 更多