Hinzufügen / subtrahieren GridLength in WPF
-
21-09-2019 - |
Frage
Ich habe drei Spalten mit zwei Expandern in der linken und rechten Spalte. Wenn beide die expnders kollabieren, ich brauche den Inhalt in der mittleren Spalte auf den vollen Fenstern arrage. Dafür brauche ich die gridlengths zu berechnen.
Beispiel
GridLength w1= new GridLength( 20 );
GridLength w2= new GridLength( 50 );
GridLength w3= new GridLength( 0 );
Wie kommt man
w3 = w2 - w1
Lösung
Versuchen Sie folgendes: Stellen Sie die Breite des dehnbaren ColumnDefinitions
zu Auto
und den mittleren bis 1 Stern-Einheit. Kontrollieren Sie die Breite der Spalten Erweiterbar durch die Breite auf deren Inhalte einstellen. Dann, wenn sie zusammenbrechen, die mittlere Spalte erweitern sollte den verfügbaren Raum zu füllen.
Beispiel:
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Expander Margin="0" VerticalAlignment="Top" Header="Expander" ExpandDirection="Right">
<Grid>
<Grid HorizontalAlignment="Left" Width="100" Background="Blue" Height="100"/>
</Grid>
</Expander>
<Expander Grid.Column="2" Margin="0" VerticalAlignment="Top" Header="Expander" ExpandDirection="Left">
<Grid>
<Grid HorizontalAlignment="Left" Width="100" Background="Blue" Height="100"/>
</Grid>
</Expander>
<Grid Background="Aquamarine" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="1" />
</Grid>
Hope, das hilft
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow