#c# #wpf #xaml #grid #gridsplitter
#c# #wpf #xaml #сетка #gridsplitter
Вопрос:
У меня есть следующее, Grid
где я хочу ввести GridSplitter
для изменения размера содержимого Expander
, если оно расширено:
<Grid Grid.Row="2" Margin="0,5,0,0" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<!-- Menu -->
</Grid>
<Grid Grid.Row="1">
<!-- Main-Content -->
</Grid>
<GridSplitter Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="3"/>
<Expander Grid.Row="3" Margin="0,10,0,0" VerticalAlignment="Bottom" Header="Details">
<TabControl ItemsSource="{Binding DetailsViewModels}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding DisplayHeader}"/>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
</Expander>
</Grid>
Теперь моя проблема заключается в размере Expander
содержимого и изменении размера при перемещении GridSplitter
.
Если я установлю высоту RowDefinition
того места, где находится расширитель, на *, то при расширении расширителя потребуется гораздо больше места.
Если я установлю максимальную высоту в TabControl
, то я смогу сделать ее TabControl
меньше, если она Expander
будет расширена. Но если максимальная высота достигается только при GridSplitter
непрерывном перемещении.
Если я не задам какой-либо размер, TabControl
он займет всю высоту, что, к сожалению, слишком много.
Как я могу добиться того, что TabControl
занимает определенную максимальную высоту, но я могу увеличить ее с помощью моего GridSplitter
?
Комментарии:
1. Является ли это способом привязать
MaxHeight
orMaxWidth
ofTabControl
кHeight
orWidth
ofExpander
с помощью некоторого преобразователя значений,
Ответ №1:
Может быть, вы можете перехватить событие Expanded расширителя из исходного кода и установить желаемый размер сетки самостоятельно?
Комментарии:
1. Проблема не в
Expander
том, что на данный момент расширено. Проблема в том, что я хочу изменить размер содержимогоExpander
, переместивGridSplitter