xaml VisualState设置Grid.Row / Column of element

时间:2015-07-21 16:32:59

标签: xaml grid-layout visualstatemanager

我有一个网格布局,其中包含7个元素。如果windowScreenWidth小于X,我想将最后4个元素从第一行移动到第二行。我已经添加了一个组和状态。 如果我使用<Setter Target="el4.Grid.Row" Value="1"/><Setter Target="el4" Property="Grid.Row" Value="1"/> xaml抛出异常。

有没有办法制作我想要的东西?

2 个答案:

答案 0 :(得分:6)

正确的XAML代码是:Target="el4.(Grid.Row)" Value="1"/>

有点晚,但可能会帮助其他人。因为给出的解决方案不是最好的(使用if而不是样式和状态)。

答案 1 :(得分:0)

找到了一些解决方法:

void WindowSizeChanged(object sender, SizeChangedEventArgs e)
{
  double width = e.NewSize.Width;
  if(width < 641)
  {
    el4.SetValue(Grid.RowProperty, 1);
    el4.SetValue(Grid.ColumnProperty, 0);
  }
  else
  {
    el4.SetValue(Grid.RowProperty, 0);
    el4.SetValue(Grid.ColumnProperty, 3);
  }
}

public MainPage()
{
  SizeChanged += WindowSizeChanged;
  this.InitializeComponent();
}