TabControl.VerticalAlignment = Stretch tut nichts
-
21-09-2019 - |
Frage
Ich versuche, ein TabControl zu Autoskal machen nach dem seinem äußeren Raum (es ist in einem Stackpanel):
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="100">
<Grid>
<StackPanel>
<TabControl
BorderBrush="Red"
BorderThickness="2"
VerticalAlignment="Stretch"
VerticalContentAlignment="Stretch">
<TabItem Header="Tab1"/>
<TabItem Header="Tab2"/>
</TabControl>
</StackPanel>
</Grid>
</Window>
Das Snippet oben erzeugt das folgende Fenster, während ich die rote Grenze will die unteren Ränder des Fensters erreichen:
Lösung
Das Problem ist Ihre StackPanel
. StackPanels wird, ihre Kinder nicht dehnen.
verwenden Sie stattdessen eine DockPanel
: Das letzte Kind gestreckt wird, um den verbleibenden Platz (siehe LastChildFill , die standardmäßig auf true
).
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="100">
<Grid>
<DockPanel>
<TabControl BorderBrush="Red" BorderThickness="2">
<TabItem Header="Tab1"/>
<TabItem Header="Tab2"/>
</TabControl>
</DockPanel>
</Grid>
</Window>
Explizit Einstellung VerticalAlignment
ist nicht notwendig, da seinen Standard Wert ist bereits Stretch
.
Related Link: Panels Übersicht auf MSDN
Andere Tipps
Sie können die Höhe binden an übergeordnete Fenster der tatsächlichen Höhe.
<TabControl
BorderBrush="Red"
BorderThickness="2"
Height="{Binding Path=ActualHeight,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type Window}}}">
<TabItem Header="Tab1"/>
<TabItem Header="Tab2"/>
</TabControl>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow