Добавить / вычесть GridLength в WPF
У меня есть три столбца, содержащие два расширителя в левом и правом столбцах. Когда оба расширителя рухнули, мне нужно расположить содержимое в средней колонке в полном окне. Для этого мне нужно рассчитать длины сетки.
Например
GridLength w1= new GridLength( 20 );
GridLength w2= new GridLength( 50 );
GridLength w3= new GridLength( 0 );
Как получить
w3 = w2 - w1
1 ответ
Решение
Попробуйте это: установить ширину расширяемого ColumnDefinitions
в Auto
и средняя единица к 1 звезде. Управляйте шириной расширяемых столбцов, устанавливая ширину их содержимого. Затем, когда они свернуты, средний столбец должен расшириться, чтобы заполнить доступное пространство.
Пример:
<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>
Надеюсь это поможет