Ich möchte eine Viewbox (oder etwas ähnliches) erstellen, die nur ihre Höhe skaliert und dann ihren Inhalt horizontal streckt.Eine Viewbox vertikal skalieren, aber horizontal strecken
Wenn ich dies tun:
<Viewbox>
<StackPanel>
<Button>Foo</Button>
<Button>Bar</Button>
</StackPanel>
</Viewbox>
dann bekomme ich diese:
http://www.excastle.com/misc/viewbox-center.png
Es wirkt, als ob beide der Tasten Horizontal = "Center" hatte, und dann skaliert das Ergebnis . Aber ich möchte nicht HorizontalAlignment = "Center"; Ich will Horizontal = „Stretch“, wie folgt aus:
http://www.excastle.com/misc/viewbox-stretch.png
So will ich es seinen Inhalt gewünschte Höhe lesen, einen Skalierungsfaktor nur auf der Höhe der Grundlage zu berechnen, und dann kann der skalierte Inhalt strecken horizontal.
Gibt es eine Möglichkeit, dies mithilfe der Viewbox und/oder eines Drittanbieter-Panels zu erreichen?
Danke für die tolle Lösung. Ich habe hinzugefügt 'if (System.ComponentModel.DesignerProperties.GetIsInDesignMode (this)) { availableSize = neue Größe (200, 200); } ' in der Methode' protected override Size MeasureOverride (Größe availableSize) 'so der Designer funktioniert, ohne eine Ausnahme zu werfen. – Mike