2010-07-30 21 views
0

这类似于how-do-i-keep-aspect-ratio-on-scalable-scrollable-content-in-wpf,有以下区别:如何在不使用ViewBox的情况下保持嵌套网格正方形?

  1. 我想避免视框的副作用 - 而当容器调整电网应该调整,一些网格内容应保持尺寸(例如按钮)。
  2. 我不需要1以外的纵横比:1(?也许一些有约束力的技巧可以使用)
  3. 后面的代码是好的,但如果可能的话我想避免创建另一个容器

回答

1

你只需要绑定的参数WidthHeight其他的一个:

<Image x:Name="image" Height="{Binding Width, ElementName=image}"/> 
1

你应该绑定网格的宽度和高度为一个值:

<!--Dont forget to specify source where MaxSizeParam lies--> 
<Grid Width="{Binding MaxSizeParam}" Height="{Binding MaxSizeParam}"/> 

MaxSizeParam你能提供,无论你想在一个你想要的方式。例如,如果网格具有按钮,然后在按钮MaxSizeParam你应该重新计算SizeChanged事件:

void button_SizeChanged(object sender, SizeChangedEventArgs e) 
     { 
      MaxSizeParam = e.NewSize.Width > e.NewSize.Height ? e.NewSize.Width : e.NewSize.Height; 
      if (PropertyChanged != null) 
       PropertyChanged(this, new PropertyChangedEventArgs("MaxSizeParam")); 
     } 
相关问题