WebView с пользовательской навигацией не входит в Xamarin Forms - PullRequest
0 голосов
/ 01 июля 2019

Я хочу отобразить PDF в своем приложении Xamarin.Итак, я создаю экран, который содержит WebView.В этом веб-представлении я отображаю свой PDF.Но проблема возникает, когда я хочу показать пользовательскую навигацию тоже.WebView не появляется, вместо этого я вижу только белый пустой экран.Это мой xcml:

      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
              xmlns:local="clr-namespace:AAAIDApp.Views.CustomControls"
               xmlns:translate="clr-namespace:AAAIDApp.Extensions"
              x:Class="AAAIDApp.Views.pdfjsPage"   
             xmlns:renders="clr-namespace:AAAIDApp.Renders"
             NavigationPage.HasNavigationBar="False"
            >
   <ContentPage.Content>
        <Grid  Padding="0" Margin="0" VerticalOptions="FillAndExpand">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <local:CustomNavigation  Grid.Row="0" Grid.Column="0" x:Name="CustomNavigationListPDF" CloseAction="CustomNavigation_CloseAction"   />

            <StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Grid.Row="1" Grid.Column="0">
                <Grid IsVisible="False" Margin="20,10,20,10" ColumnSpacing="10" >
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <Label x:Name="TXTBck" Text="&#xf054;" FontSize="28" FontFamily="{StaticResource FontAwesome}" TextColor="{x:StaticResource IconBackColor}" Grid.Column="0" VerticalOptions="Center" HorizontalOptions="Center">

                        <Label.GestureRecognizers>
                            <TapGestureRecognizer Tapped="Back_Tapped"/>
                        </Label.GestureRecognizers>
                    </Label>


                    <Label x:Name="TXTIcons_Meeting" IsVisible="False" Text="&#xf073;" FontFamily="{StaticResource FontAwesome}" FontSize="24" TextColor="{StaticResource FontTitleIconColor}" Grid.Column="1" VerticalOptions="Center" >

                    </Label>

                    <Label x:Name="TextTitle" TextColor="{StaticResource LightGrayColor}" FontSize="Large" Grid.Column="2"  VerticalOptions="Center" />

                </Grid>


                <!--<Grid>

                 <Label x:Name="Dowenload" Text="Download PDF" TextColor="Blue" HorizontalOptions="Center" VerticalOptions="Center">
                 <Label.GestureRecognizers>
                            <TapGestureRecognizer Tapped="Download_PDF"/>
                        </Label.GestureRecognizers>
                    </Label>
                    </Grid>-->
               <Grid>
              <local:PdfWebView x:Name="PdfView" HeightRequets = "1000" WidthRequest= "1000" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" ></local:PdfWebView>
                    </Grid>
            </StackLayout>
        </Grid>
    </ContentPage.Content>
    </ContentPage>

и мой файл .cs вот так:

 public pdfjsPage()
        {
            InitializeComponent();
            CustomNavigationListPDF.PageTitle = "PDF";
            CustomNavigationListPDF.PageIcon = "\uf073";

       }

PdfWebView пуст:

{
    public class PdfWebView : WebView
    {
    }
}

CustomNavigation выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" 
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="AAAIDApp.Views.CustomControls.CustomNavigation">
    <ContentView.Content>
        <StackLayout HorizontalOptions="FillAndExpand" Spacing="0" >
            <Grid Padding="20,10,20,0" Margin="0" ColumnSpacing="10" HorizontalOptions="FillAndExpand">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <Frame BackgroundColor="Transparent" HasShadow="False" Grid.Row="0" Grid.Column="0" Padding="0" Margin="0" WidthRequest="40" HeightRequest="30" >
                    <Label Text="&#xf053;" x:Name="LBLBack" FontSize="30" TextColor="#3d3d3d"  VerticalOptions="Center" HorizontalOptions="Start"  FontFamily="{StaticResource FontAwesome}">

                    </Label>
                    <Frame.GestureRecognizers>
                        <TapGestureRecognizer Tapped="BackLabel_Tapped"/>
                    </Frame.GestureRecognizers>
                </Frame>
                <!--<BoxView BackgroundColor="Transparent" Grid.Column="0" Grid.ColumnSpan="2" >

                </BoxView>-->

                <Label  x:Name="LBLIcon" TextColor="{StaticResource FontTitleIconColor}" FontSize="28"  Grid.Row="0" Grid.Column="1" VerticalOptions="Center"  FontFamily="{StaticResource FontAwesome}">

                </Label>

                <StackLayout Grid.Column="2" VerticalOptions="Center">
                    <Label x:Name="CustomNavTitle" VerticalOptions="Center" VerticalTextAlignment="Center" TextColor="{StaticResource LightGrayColor}" FontSize="Large"/>
                </StackLayout>


                <Frame BackgroundColor="Transparent" HasShadow="False"  Grid.Row="0" Grid.Column="3" Padding="0" Margin="0" WidthRequest="40" HeightRequest="30" >
                    <Label Text="&#xf00d;" FontSize="28" x:Name="btnClose" TextColor="#3d3d3d" HorizontalOptions="End" VerticalOptions="Center"  FontFamily="{StaticResource FontAwesome}">
                        <Label.GestureRecognizers>
                            <TapGestureRecognizer Tapped="Closed_Tapped"/>
                        </Label.GestureRecognizers>
                    </Label>
                    <Frame.GestureRecognizers>
                        <TapGestureRecognizer Tapped="BackLabel_Tapped"/>
                    </Frame.GestureRecognizers>
                </Frame>
            </Grid>
            <BoxView BackgroundColor="{StaticResource LineColor}" HorizontalOptions="FillAndExpand" HeightRequest="1" Margin="0,5,0,0"/>
        </StackLayout>
    </ContentView.Content>
</ContentView>

1 Ответ

0 голосов
/ 02 июля 2019

Вы можете удалить Grid из local:PdfWebView, просто поместите local:PdfWebView в stacklayout, он может нормально работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...