【问题标题】:WPF grid column 50% widthWPF 网格列 50% 宽度
【发布时间】:2022-01-13 17:12:48
【问题描述】:
我的网格布局中需要 3 列,看起来像这样:
- 50% 的窗口
- 其他地方
- 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>
另一种选择是处理Window 的SizeChanged 事件并计算第一列的宽度。
<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);
}