我想创建一个Viewbox(或类似的东西),该Viewbox仅按比例缩放其高度,然后在水平方向上拉伸其内容。
如果我这样做:
<Viewbox>
<StackPanel>
<Button>Foo</Button>
<Button>Bar</Button>
</StackPanel>
</Viewbox>
然后我得到了这个:
(来源:excastle.com)
它的表现就像两个按钮都设置了HorizontalAlignment="Center",然后缩放结果。但我不想要HorizontalAlignment="Center";我想要HorizontalAlignment="Stretch",就像这样:
(来源:excastle.com)
所以我希望它读取其内容的期望高度,仅基于高度计算一个缩放因子,然后允许缩放后的内容横向拉伸。
是否有办法使用Viewbox或某些第三方面板来实现这一点?
protected override Size MeasureOverride(Size availableSize)
中添加了以下代码:if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(this)) { availableSize = new Size(200, 200); }
,这样设计师就可以正常工作而不会抛出异常。 - Mike