none
HTML Code in WPF Element darstellen RRS feed

  • Frage

  • Salü alle zusammen

    Ich würde gerne einen String welcher HTML Tags beinhaltet in einer WPF Form darstellen. Der gegebene String ist:

    string MeinHTML = "Die <i>Erde</i> ist <b>rund</b>";

    Und nun möchte ich gerne MeinHTML in der WPF Form darstellen. Habe mir das so irgendwie wie folgt dargestellt:

    Textbox1.Text = MeinHTML;

    Aber dann wird <i> in die Textbox geschirben anstatt das Wort Erde schräg geschrieben.

    Kann mir jemand ein Tipp geben, wie ich mein Ziel erreichen kann?

     

    Vielen Dank und liebe Grüsse

    Sabrina

    Dienstag, 6. Juli 2010 22:25

Antworten

  • Hallo Sabrina,

    ziehe zum Beispiel ein WebBrowser-Control in das Fenster. Dann zum Beispiel:

       webBrowser1.NavigateToString("Die <i>Erde</i> ist <b>rund</b>");



    Ansonsten siehe auch: [Display html Content in WPF (XBAP)]



    ciao Frank
    Mittwoch, 7. Juli 2010 04:44
  • Hi Sabrina,
    für die formatierte Darstellung von html, der in Zeichenketten vorliegt, kann das WebBrowser-Steuerelement und die NavigateToString-Methode genutzt werden, z.B. so:

    <Window x:Class="MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         Title="MainWindow" Height="350" Width="525">
     <Grid>
      <WebBrowser Name="wb1" />
     </Grid>
    </Window>
    

    Der CodeBehind dazu:

    Class MainWindow
    
     Private Sub MainWindow_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
      Me.wb1.NavigateToString("<html>Die <i>Erde</i> ist <b>rund</b></html>")
     End Sub
    
    End Class
    

    --
    Viele Gruesse
    Peter

     
     
    Mittwoch, 7. Juli 2010 05:18

Alle Antworten

  • Hallo Sabrina,

    ziehe zum Beispiel ein WebBrowser-Control in das Fenster. Dann zum Beispiel:

       webBrowser1.NavigateToString("Die <i>Erde</i> ist <b>rund</b>");



    Ansonsten siehe auch: [Display html Content in WPF (XBAP)]



    ciao Frank
    Mittwoch, 7. Juli 2010 04:44
  • Hi Sabrina,
    für die formatierte Darstellung von html, der in Zeichenketten vorliegt, kann das WebBrowser-Steuerelement und die NavigateToString-Methode genutzt werden, z.B. so:

    <Window x:Class="MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         Title="MainWindow" Height="350" Width="525">
     <Grid>
      <WebBrowser Name="wb1" />
     </Grid>
    </Window>
    

    Der CodeBehind dazu:

    Class MainWindow
    
     Private Sub MainWindow_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
      Me.wb1.NavigateToString("<html>Die <i>Erde</i> ist <b>rund</b></html>")
     End Sub
    
    End Class
    

    --
    Viele Gruesse
    Peter

     
     
    Mittwoch, 7. Juli 2010 05:18
  • Es kann übrigens auch sinnvoll sein, wegen des kleineren FootPrints bei mehreren solcher Elemente das FlowDocument zu benutzen. Es gibt sogar automatische Konvertierungs-Klassen für rudimentäres HTML:

    [Demo für die Konvertierung von XAML in HTML]
    http://msdn.microsoft.com/de-de/library/aa972129(VS.90).aspx

    die eine HtmlToXamlConverter-Klasse implementieren. (Um es nicht aus dem großen SDK zu nehmen)

    Das weitere Verfahren wäre dann analog:

    [Nigel Spencer's Blog: HTML to FlowDocument Converter]
    http://blog.spencen.com/2008/01/19/html-to-flowdocument-converter.aspx

     


    ciao Frank
    Mittwoch, 7. Juli 2010 06:10
  • Hallo Sabrina,

    Man kann auch noch folgendes machen:

    Füge in deinem Projekt eine Datei mit den Namen Test.html ein, der den beliebigen Inhalt enthaltet (z.B. <html>Die <i>Erde</i> ist <b>rund</b></html>).

    Setzte die Eigenschaft der Test.html Datei Copy to Output Directory  auf Copy if newer

    Zeihe auf dem Grid das Frame Steuerelement.

    Und hier dann die XAML Datei:

     

    <Window x:Class="Window1"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Title="MainWindow" Height="350" Width="525" Name="Window1">
      <Grid>
        <Frame Name="FrameWithinGrid" Source="pack://siteoforigin:,,,/Test.html">
          <Frame.Height>300</Frame.Height>
          <Frame.Width>500</Frame.Width>
          <Frame.BorderBrush>Black</Frame.BorderBrush>
          <Frame.BorderThickness>2</Frame.BorderThickness>
        </Frame>
      </Grid>
    </Window>

    Stelle fest dass Du mindestens .NET Framework 3.5 SP1 installiert hasst.

    Lies auch folgender Artikel: Pack URIs in Windows Presentation Foundation

    Grüße,

    Robert

    Donnerstag, 8. Juli 2010 08:10
    Moderator
  • Salü Frank

    Vielen lieben Dank für Deine Antwort. Vielen Dank auch allen anderen. Ich habe das mit dem WebBrowser-Control gelöst und das funktioniert super.

    Besten Dank für die vielen Antworten
    Liebe Grüsse
    Sabrina

    Sonntag, 11. Juli 2010 18:53
  • Hallo Sabrina,

    Frank schrieb:
    > > ziehe zum Beispiel ein WebBrowser-Control in das Fenster. Dann zum Beispiel:
    > > webBrowser1.NavigateToString("Die <i>Erde</i> ist <b>rund</b>");

    Sabrina schrieb:
    > Salü Frank, Vielen lieben Dank für Deine Antwort. Vielen Dank auch allen
    > anderen. Ich habe das mit dem WebBrowser-Control gelöst und das funktioniert super.

    gern.

     


    ciao Frank
    Sonntag, 11. Juli 2010 21:15