Используйте выборочный IValueConverter для переключения значения высоты на рядам основе, имеет ли средний контроль какое-либо содержимое
Пользовательские IValueConverter:
public class BoolToGridLengthConverter : IValueConverter
{
public GridLength TrueLength { get; set; }
public GridLength FalseLength { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (bool)value ? TrueLength : FalseLength;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
XAML:
<UserControl.Resources>
<stackOverflow:BoolToGridLengthConverter x:Key="BoolToGridSizeConverter" TrueLength="1*" FalseLength="Auto"/>
<stackOverflow:BoolToGridLengthConverter x:Key="BoolToGridSizeConverter2" TrueLength="0" FalseLength="1*"/>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="{Binding ElementName=ChangingSizeControl, Path=HasContent, Converter={StaticResource BoolToGridSizeConverter}}"/>
<RowDefinition Height="{Binding ElementName=ChangingSizeControl, Path=HasContent, Converter={StaticResource BoolToGridSizeConverter2}}"/>
</Grid.RowDefinitions>
<UserControl Grid.Row="0" x:Name="FixedSizeControl"/>
<ContentControl Grid.Row="1" x:Name="ChangingSizeControl"/>
<UserControl Grid.Row="2" x:Name="MainContentControl"/>
</Grid>
Он может отображался на экран вида (но пустой) по какой-то причине мы не» Знаю. – almulo