我有一些像这样的XAML代码:
<ScrollViewer VerticalScrollMode="Auto">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid x:Name="g1" Grid.Row="0" Background="Pink"/>
<Grid x:Name="g2" Grid.Row="1" Background="Green"/>
</Grid>
</ScrollViewer>
<Button Content="Update Size" Width="150" Height="50" Click="Button_Click" Margin="105,342,0,248"/>
和代码背后:
private void Button_Click(object sender, RoutedEventArgs e)
{
g1.Width = mainGrid.ActualWidth;
g1.Height = mainGrid.ActualHeight / 2;
}
在点击按钮之前显示:
单击按钮并将窗口拖动到更大的位置后,它看起来像这样:
所以我的问题是,在点击按钮之前,如果你在星形尺寸工作周围拖动窗口并在窗口调整大小时调整顶部/底部网格的大小,但是在点击设置g1宽度和高度的按钮后,它会打破星形-浆纱。在设定宽度和高度后,如何让星形尺寸再次恢复工作?
提前感谢。
答案 0 :(得分:1)
如何在设置宽度和高度后再将星形尺寸恢复工作?
设置网格g1
的宽度和高度后,您打破了自动星形大小。但您可以使用Window.SizeChanged事件来监视应用程序窗口视图的大小更改。当窗口大小发生变化时,请自行动态设置g1
的新高度和宽度以适合父控件mainGrid
。
以下代码将满足您当前的要求。
public Strangelaout()
{
this.InitializeComponent();
Window.Current.SizeChanged += Current_SizeChanged;
}
private void Current_SizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
{
g1.Width = mainGrid.ActualWidth;
g1.Height = mainGrid.ActualHeight / 2;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
g1.Width = mainGrid.ActualWidth;
g1.Height = mainGrid.ActualHeight / 2;
}