WPF 网格列 50% 宽度
WPF grid column 50% width
我的网格布局需要 3 列,看起来像这样:
- window
的 50%
- 其他地方
- 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>
另一种选择是处理 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);
}
我的网格布局需要 3 列,看起来像这样:
- window 的 50%
- 其他地方
- 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>
另一种选择是处理 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);
}