有时候需要在后台代码中修改Grid布局,大概实现代码如下
代码很简单,如果在xmal中改过布局应该一看就明白。
操作方法:创建一个默认页面,后台代码中加如下代码
public partial class Page3 : PhoneApplicationPage
{
public Page3()
{
InitializeComponent();
Init();
}
void Init()
{
ContentPanel.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(0, GridUnitType.Auto) });
ContentPanel.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(60, GridUnitType.Pixel) });
ContentPanel.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
ContentPanel.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(2, GridUnitType.Star) });
ContentPanel.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) });
ContentPanel.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) });
TextBlock tblk = new TextBlock() { Text = "TextBlock1", FontSize = 80 };
ContentPanel.Children.Add(tblk);
Grid.SetRow(tblk, 0);
Grid.SetColumnSpan(tblk, 2);
Rectangle rect1 = new Rectangle() { Fill = new SolidColorBrush(Colors.Brown), HorizontalAlignment= HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch };
ContentPanel.Children.Add(rect1);
Grid.SetRow(rect1, 1);
Rectangle rect2 = new Rectangle() { Fill = new SolidColorBrush(Colors.Gray), HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch };
ContentPanel.Children.Add(rect2);
Grid.SetRow(rect2, 2);
Grid.SetColumn(rect2, 1);
Rectangle rect3 = new Rectangle() { Fill = new SolidColorBrush(Colors.Orange), HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch };
ContentPanel.Children.Add(rect3);
Grid.SetRow(rect3, 3);
Grid.SetColumn(rect3, 0);
Grid.SetColumnSpan(rect3, 2);
}
}
最终效果如下: