WPF网格柱50%宽度



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

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

但我无法设置,你们中有人知道如何实现吗?

我试着用*,但它总是在没有固定宽度的列的情况下解析宽度,而且看起来不太好。

所以这并不能实现我所需要的:

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

谢谢你的帮助,大卫。

我将创建具有两列的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);            
}

相关内容

  • 没有找到相关文章

最新更新