ScrollView обрезает элементы управления

Возникла следующая проблема. Есть страница, на которой расположены несколько элементов управления. Все они находятся в контейнере ScrollView. Изначально свойство IsVisible у одного из них равно false. При определённых условиях, данное свойство меняется на true, следовательно, размер содержимого ScrollView увеличивается. При возникновении этого события, страница начинает отображаться некорректно: обрезается крайний снизу элемент. Это изображено на двух скриншотах ниже. До возникновения события

После возникновения события

Код страницы следующий:

    <ContentPage.Content>
    <ScrollView>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="*" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <controls:CustomShadowFrame Grid.Row="0" 
                                        HorizontalOptions="FillAndExpand" 
                                        VerticalOptions="FillAndExpand">
                <StackLayout VerticalOptions="CenterAndExpand">
                    <StackLayout Orientation="Horizontal">
                        <Image Source="{Binding Place.TypeImage.Source}" />
                        <Label Text="{Binding Place.Name}" 
                               HorizontalOptions="StartAndExpand" 
                               VerticalOptions="CenterAndExpand" />
                    </StackLayout>
                    <StackLayout Margin="10, 0, 0, 10">
                        <StackLayout Orientation="Horizontal" 
                                     Spacing="1">
                            <Label Text="Тип: " 
                                   Style="{StaticResource LabelTextStyle}" 
                                   FontFamily="Montserrat-Bold" />
                            <Label Text="{Binding Place.TypeString}" 
                                   Style="{StaticResource LabelTextStyle}" />
                        </StackLayout>
                        <Label Text="Цены: " 
                               Style="{StaticResource LabelTextStyle}" 
                               FontFamily="Montserrat-Bold" />
                            <Label Text="{Binding Place.DayCost}" 
                                   Style="{StaticResource LabelTextStyle}" 
                                   FontFamily="Montserrat-SemiBold" />
                            <Label Text="{Binding Place.DayNightCost}" 
                                   Style="{StaticResource LabelTextStyle}" 
                                   FontFamily="Montserrat-SemiBold" />
                    </StackLayout>
                </StackLayout>
            </controls:CustomShadowFrame>
            <Label Grid.Row="1" 
                   Text="Календарь бронирования" 
                   Style="{StaticResource LabelTitleStyle}" 
                   FontFamily="Montserrat-Regular"
                   FontSize="24" />
            <controls:CustomShadowFrame Grid.Row="2"
                                        HorizontalOptions="FillAndExpand" 
                                        VerticalOptions="FillAndExpand">
                <StackLayout HorizontalOptions="CenterAndExpand" 
                             VerticalOptions="FillAndExpand" 
                             Margin="0, 5, 0, 5">
                    <ActivityIndicator IsVisible="{Binding IsBusy}" 
                                       IsRunning="{Binding IsBusy}"  
                                       HorizontalOptions="Center" 
                                       VerticalOptions="CenterAndExpand" 
                                       Color="{DynamicResource ElectronBlue}" />
                    <cale:Calendar x:Name="calendar"
                                   Culture="{Binding RuCulture}"
                                   FooterSectionVisible="False"
                                   DaysTitleMaximumLength="TwoChars"
                                   DayViewCornerRadius="4"
                                   SelectedDate="{Binding CalendarSelectedDate, Mode=TwoWay}"
                                   TodayOutlineColor="{DynamicResource ElectronBlue}"
                                   Events="{Binding ReservDates}"
                                   MinimumDate="{Binding CalendarMinDate}"
                                   MaximumDate="{Binding CalendarMaxDate}"
                                   EventIndicatorColor="DarkRed"
                                   EventIndicatorTextColor="{DynamicResource Gray-White}"
                                   EventIndicatorSelectedTextColor="{DynamicResource Gray-White}"
                                   EventIndicatorSelectedColor="DarkBlue"
                                   EventIndicatorType="Background"
                                   DayTappedCommand="{Binding DateClickedCommand}">
                        <cale:Calendar.HeaderSectionTemplate>
                            <template:CalendarHeader />
                        </cale:Calendar.HeaderSectionTemplate>
                        <cale:Calendar.Triggers>
                            <DataTrigger TargetType="cale:Calendar" Binding="{Binding IsBusy}" Value="True">
                                <Setter Property="IsVisible" Value="False" />
                            </DataTrigger>
                            <DataTrigger TargetType="cale:Calendar" Binding="{Binding IsBusy}" Value="True">
                                <Setter Property="IsEnabled" Value="False" />
                            </DataTrigger>
                        </cale:Calendar.Triggers>
                    </cale:Calendar>
                    <Frame IsVisible="{Binding IsBookingDaySelected}" 
                           Margin="10, 5, 10, 5"
                           BorderColor="Red">
                        <Label Text="{Binding BookingText}" 
                               Style="{StaticResource LabelTextStyle}"
                               LineHeight="1.4" />
                    </Frame>
                </StackLayout>
            </controls:CustomShadowFrame>
            <Label Grid.Row="3" 
                   Text="Бронирование" 
                   Style="{StaticResource LabelTitleStyle}" 
                   FontFamily="Montserrat-Regular"
                   FontSize="24">
                <Label.Triggers>
                    <DataTrigger TargetType="Label" Binding="{Binding IsBusy}" Value="True">
                        <Setter Property="IsVisible" Value="False" />
                    </DataTrigger>
                </Label.Triggers>
            </Label>
            <controls:CustomShadowFrame Grid.Row="4"
                                        HorizontalOptions="FillAndExpand" 
                                        VerticalOptions="Fill">
                <StackLayout HorizontalOptions="CenterAndExpand" 
                             VerticalOptions="FillAndExpand" 
                             Margin="0, 5, 0, 5">
                    <picker:DateTimePickerView Date="{Binding PickerSelectedDate, Mode=TwoWay}" 
                                               MinDate="{Binding PickerMinDate}"
                                               MaxDate="{Binding PickerMaxDate}" 
                                               ArrivalDate="{Binding ArrivalDateTime, Mode=TwoWay}"
                                               DepartureDate="{Binding DepartureDateTime, Mode=TwoWay}"
                                               TextColor="{DynamicResource Gray-Black}"
                                               BackgroundColor="{DynamicResource Gray-White}">
                    </picker:DateTimePickerView>
                    <Label Text="{Binding TotalTimeText}"
                           IsVisible="{Binding TotalTimeIsVisible}"
                           Style="{StaticResource LabelTextStyle}"
                           HorizontalTextAlignment="Center"
                           LineHeight="1.4"
                           HorizontalOptions="CenterAndExpand" 
                           Margin="0, 5, 0, 5" />
                </StackLayout>
                <controls:CustomShadowFrame.Triggers>
                    <DataTrigger TargetType="controls:CustomShadowFrame" Binding="{Binding IsBusy}" Value="True">
                        <Setter Property="IsVisible" Value="False" />
                    </DataTrigger>
                </controls:CustomShadowFrame.Triggers>
            </controls:CustomShadowFrame>
        </Grid>
    </ScrollView>
</ContentPage.Content>

В чём может быть проблема?


Ответы (0 шт):