2017-10-25 67 views
6

Napisałem ten kod, aby spróbować i pokazać kilka linijek kodu HTML w obrębie strony:Jak mogę wyświetlić HTML na stronie Xamarin.Forms ze źródłem dla HTML w C#?

mam ten XAML:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    xmlns:local="clr-namespace:Japanese;assembly=Test" 
    x:Class="Test.HelpCards" 
    x:Name="HelpCards" 
    Title="Help ▹ Cards Tab"> 
    <ContentPage.Content> 
     <ScrollView> 
      <StackLayout Spacing="10" Margin="20"> 
       <WebView x:Name="Browser" /> 
      </StackLayout> 
     </ScrollView> 
    </ContentPage.Content> 
</ContentPage> 

    public HelpCards() 
    { 
     InitializeComponent(); 
     var htmlSource = new HtmlWebViewSource(); 
     htmlSource.Html = @"<html><body> 
     <h1>ABC</h1> 
     <p>DEF</p> 
     </body></html>"; 
     Browser.Source = htmlSource; 
    } 

Jednak podczas uruchamiania kodu widzę tylko pusta strona.

Czy ktoś ma jakieś pomysły, co może być nie tak?

+1

Nie ma potrzeby korzystania z 'ScrollView', ponieważ' WebView' ma taką samą. Musisz również określić wysokość i szerokość jako FillAndExpand dla WebView do renderowania (w tym miejscu zobaczysz pustą stronę, ponieważ rozmiar WebView to 0) – Ada

+1

'' – Ada

Odpowiedz

6

Należy podać opcje układu dla WebView.

<ContentPage.Content> 
    <ScrollView> <!-- ScrollView not needed as WebView has inbuilt scrolling behavior --> 
     <StackLayout Spacing="10" Margin="20"> 
      <WebView x:Name="Browser" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" /> 
     </StackLayout> 
    </ScrollView> 
</ContentPage.Content> 
+0

Dzięki . Próbowałem tego, ale z jakiegoś powodu wciąż widzę pustą białą stronę. Nie wiem, co dalej robić. Próbowano również bez i tego samego. – Alan2

+2

Przepraszam, że ustawiłem 'StartAndExpand' w opcjach poziomych - miało to być' FillAndExpand' – Ada

+1

Dzięki. Działa dobrze teraz! – Alan2

3

Widok strony internetowej może być sam w sobie w ContentPage.Content. Nie trzeba go owijać w ScrollView ani StackLayout. Ta metoda również nie wymaga określenia opcji poziomych lub weterynaryjnych.

<ContentPage.Content> 
    <WebView x:Name="Browser" /> 
</ContentPage.Content>