Quiero hacer un Viewbox (o algo similar) que solo escala su altura, y luego estira su contenido horizontalmente.Hacer que Viewbox se escale verticalmente pero estirar horizontalmente
Si hago esto:
<Viewbox>
<StackPanel>
<Button>Foo</Button>
<Button>Bar</Button>
</StackPanel>
</Viewbox>
entonces me sale esto:
http://www.excastle.com/misc/viewbox-center.png
Actúa como si tanto de los botones tenían HorizontalAlignment = "centro" y, a continuación, escala el resultado . Pero no quiero HorizontalAlignment = "Center"; Quiero HorizontalAlignment = "estiramiento", así:
http://www.excastle.com/misc/viewbox-stretch.png
Así que desea que diga altura deseada de su contenido, calcular un factor de escala basándose sólo en la altura, y luego permitir que el contenido de escalar a estirar horizontalmente.
¿Hay alguna forma de lograr esto usando Viewbox y/o algún panel de terceros?
Gracias por la gran solución. He añadido 'if (System.ComponentModel.DesignerProperties.GetIsInDesignMode (this)) { availableSize = new Size (200, 200); } ' en el método' protección anulada Tamaño MeasureOverride (Tamaño availableSize) 'para que el diseñador funcione sin lanzar una excepción. – Mike