Laden...

WPF Layout-Problem bei TabControl und Window.SizeToContent=WidthAndSize

Erstellt von KnutBerlin vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.025 Views
K
KnutBerlin Themenstarter:in
6 Beiträge seit 2010
vor 10 Jahren
WPF Layout-Problem bei TabControl und Window.SizeToContent=WidthAndSize

Ich habe ein WPF-Fenster (Options-Dialog) mit einem TabControl, das diverse TabItems enthält.
Auf diesen Tab-Seiten gibt es Controls, deren Größe sich dynamisch ihrem Inhalt anpassen sollen.
Damit der gesamte Inhalt im WPF-Fenster sichtbar ist, habe ich seine SizeToContent-Eigenschaft auf "WidthAndSize" gesetzt. Das funktioniert soweit.

Mein Problem sind die vielen TabItems des TabControls. Auf Grund der gewählten SizeToContent-Eigenschaft des WPF-Fensters verbreitern sie das WPF-Fenster weit mehr, als es der restliche Inhalt erfordert. Das sieht unschön aus.

Ich würde die TabItems gern scrollbar machen (z.B. wie inwant to make scrollable tabs for a tabcontrol). Das funktioniert aber nur bei einer festen Fensterbreite und verhindert, das TabItems auf mehrere Zeilen verteilt wird.
Bei SizeToContent = "WidthAndSize" wird das Fenster wieder so breit, das alle MenuItems raufpassen.

Gibt es eine Möglichkeit, die TabItems (bzw. den ScrollViewer / TabPanel im obigen Link) bei der Berechnung der Fensterbreite unberücksichtigt zu lassen?
Und zwar so, dass sie das Fenster nicht verbreitern, aber den verfügbaren Platz voll ausnutzen und ggf. scrollen?

KnutBerlin

R
212 Beiträge seit 2012
vor 10 Jahren

Schmeiß doch einfach alles in ein grid gib für das grid keine größe an definier die Positionen deiner Items per Grid.Column und Row und gib gib die größe dann Relativ an z.B.


        <Grid.RowDefinitions>
            <RowDefinition Height="50" />
            <RowDefinition Height="50*" />
            <RowDefinition Height="100*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200*" />
            <ColumnDefinition Width="370*" />
        </Grid.ColumnDefinitions>

Die Werte mit dem Sternchen sind relative werte XML rechnet diesem beim größer ziehem um und die ohne sternchen bleiben immer genau so groß wie beschrieben.

Zum scrollen kannst du das Grid dem Grid auch ne MInnimale größe geben und es in ein Scroll/Stackpannel viever schmeißen