Xamarin - сделать элемент вид над сеткой - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть форма, созданная с помощью Grid внутри ContentPage, например:

<ContentPage>
<Grid RowSpacing="0" 
           >
    <Grid.RowDefinitions>
        <RowDefinition Height="90" />
        <RowDefinition Height="1" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>


    <Grid BackgroundColor="{StaticResource TopBackground}" Padding="16" RowSpacing="4" ColumnSpacing="0" 
          >
        <Grid.RowDefinitions>
            <RowDefinition Height="4*" />
            <RowDefinition Height="6*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>


        <Button  Text="BUTTON"
                    FontSize="20" Grid.Row="1" Grid.Column="1"
             />  
    </Grid>


    <BoxView Grid.Row="1" HeightRequest="1" BackgroundColor="{StaticResource ColorSeparador}" HorizontalOptions="FillAndExpand" />

    <ScrollView Grid.Row="2">

        <StackLayout Orientation="Vertical" Margin="16" Spacing="4"
                     >
            <local:ContactEntry HeightRequest="35"  Keyboard="Email" x:Name="emailEntry" "/>

            <Button Margin="0,30,0,50" Grid.Row="9" Text="Send" 
                x:Name="BtnEntrar" Clicked= "onEnviarClicked" B/>  
        </StackLayout>

    </ScrollView>


</Grid>
</ContentPage>

У меня вопрос: где и как расположить по центру и над формами мой пользовательский элемент индикатора занятости (не охватывать всю страницу), который будет отображаться при отправке пользователем формы?

     <custom:MyAct
         WidthRequest="150" HeightRequest="150" 
      />  

1 Ответ

0 голосов
/ 11 апреля 2019

Если вы хотите, чтобы ваш пользовательский индикатор находился в центре и рисовался поверх остального содержимого сетки, просто сделайте это:

<ContentPage>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="90" />
            <RowDefinition Height="1" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <!-- Your content here -->
        <custom:MyAct
            Grid.Row="0"
            Grid.RowSpan="3"
            WidthRequest="150"
            HeightRequest="150"
            VerticalOptions="Center"
            HorizontalOptions="Center" />  
    </Grid>
</ContentPage>

Таким образом, поскольку вы определили ровно 3 строки длясетка, ваш пользовательский индикатор активности займет столько же места, сколько вся сетка благодаря свойству Grid.RowSpan="3".Кроме того, индикатор будет отображаться поверх всего остального в сетке, потому что он определен после него в коде XAML.

Чтобы заставить его работать должным образом, не забудьте выполнить связывание, необходимое для скрытия / отображения вашей пользовательской активности.индикатор.

...