Voglio creare una Viewbox (o qualcosa di simile) che riduca solo la sua altezza e quindi stenda il suo contenuto orizzontalmente.Rendere verticale una scala Viewbox ma allungarla orizzontalmente
Se faccio questo:
<Viewbox>
<StackPanel>
<Button>Foo</Button>
<Button>Bar</Button>
</StackPanel>
</Viewbox>
tanto sono questo:
http://www.excastle.com/misc/viewbox-center.png
Agisce come se entrambi i pulsanti avevano HorizontalAlignment = "center", e poi scale il risultato . Ma non voglio HorizontalAlignment = "Center"; Voglio HorizontalAlignment = "Stretch", in questo modo:
http://www.excastle.com/misc/viewbox-stretch.png
quindi voglio per leggere all'altezza desiderata il suo contenuto, calcolare un fattore di scala basata solo su l'altezza, e quindi consentire il contenuto scalata a allungare orizzontalmente.
Esiste un modo per farlo utilizzando la Viewbox e/o alcuni pannelli di terze parti?
Grazie per la grande soluzione. Ho aggiunto 'if (System.ComponentModel.DesignerProperties.GetIsInDesignMode (this)) { availableSize = new Size (200, 200); } ' nel metodo' override protetto Size MeasureOverride (Size availableSize) 'quindi il progettista funziona senza generare un'eccezione. – Mike