Meine Lösung war, ein Label-Steuerelement mit einer "Feder" wie Fähigkeit zu erstellen, so dass es die leere Lücke zwischen den Schaltflächen auf der Symbolleiste füllen würde, so "Ausrichten" der Symbolleiste Combobox (oder andere Steuerung, die „rechtsbündig).
Dazu habe ich eine WidthConverter, das würde die tatsächliche Breite des ToolBar Steuerung und dann abziehen, um die den Platzbedarf benötigt, um richtig richten sich die Combobox benötigt .:
Dann fügte ich der Symbolleiste, die auf der linken Seite der Combobox platziert wurde, ein Label Control hinzu Etikett Breite der Actual Symbolleiste und wenden die WidthConverter:
<Label Width="{Binding Converter={StaticResource WidthConverter}, ElementName=toolBar1, Path=ActualWidth, ConverterParameter=50}" />
Sie müssen die Converter auf Ihre speziellen Bedürfnisse anzupassen, bis Sie das gewünschte „rechts ausrichten“ erhalten. Eine höhere Zahl bietet mehr Platz für die Combobox, während eine niedrigere Zahl weniger Platz bietet.
Bei Verwendung dieser Lösung wird die Beschriftung automatisch angepasst, wenn die Größe der Symbolleiste geändert wird. Dadurch wird der Eindruck erweckt, dass Sie Ihre Combobox richtig ausgerichtet haben.
Diese Lösung bietet im Vergleich zum Hinzufügen eines Rasters zur Symbolleiste zwei große Vorteile. Die erste besteht darin, dass Sie das Symbolleisten-Design nicht verlieren, wenn Sie Schaltflächen in der Symbolleiste verwenden müssen. Der zweite ist, dass der Überlauf wie erwartet funktioniert, wenn die Symbolleistenlänge durch die Fenstergrößenänderung reduziert wird. Einzelne Tasten gehen je nach Bedarf in den Überlauf. Wenn die Knöpfe in ein Gitter gelegt werden, wird das Gitter in den Überlauf gebracht, indem alle Knöpfe mitgenommen werden.
XAML davon in Gebrauch:
<ToolBarPanel>
<ToolBar Name="toolBar1">
<Button>
<Image Source="save.png"/>
</Button>
<Label Width="{Binding Converter={StaticResource Converters.WidthConverter},
ElementName=toolBar1,
Path=ActualWidth,
ConverterParameter=231}" HorizontalAlignment="Stretch" ToolBar.OverflowMode="Never"/>
<Button>
<Image Source="open.png"/>
</Button>
</ToolBar>
Wenn Sie die letzte Schaltfläche in der Symbolleiste immer behalten wollen, sagen, eine Hilfe-Taste, die Sie immer sichtbar sein sollen, das Attribut ToolBar hinzuzufügen. OverflowMode = "Nie" zu seinem Element.
Eigentlich finde ich das eine brillante (und sehr gepflegte) Lösung. Ich habe dieses Problem schon so lange geplagt. Vielen Dank! – pongba
Das ist wirklich eine brillante Idee. Vielen Dank! – newman
Hübsch, hübsch, ziemlich gut. – SmartK8