Feedback

C# - Apps: WebView HTML binden

Veröffentlicht von am 15.03.2015
(0 Bewertungen)
Das WebView-Control bietet von sich aus keine Möglichkeit den HTML-Quellcode zu binden.
Die hier gezeigte angefügte Eigenschaft implementiert zumindest den machbaren Ansatz. Man kann den HTML-Code setzen, das Abrufen ist nicht realisierbar.

All zu schnell hinter einander aktualisieren sollte man die Eigenschaft jedoch auch nicht, da die App sonst hängen bleibt. Auch der VS Debugger half mir nicht beim Lösen des Problems.

Benötigte Namespaces
System.ComponentModel
Windows.UI.Xaml
Windows.UI.Xaml.Controls
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

/// <summary>
/// Stellt Hilfsmethoden für die Verwendung mit einem <see cref="System.UI.Xaml.Controls.WebView"/> bereit.
/// </summary>
public static class WebViewHelper
{
    /// <summary>
    /// Ruft den über die <see cref="SetHtml"/>-Methode geladenen HTML Code ab. 
    /// </summary>
    /// <param name="webView">Das <see cref="System.UI.Xaml.Controls.WebView"/> für das der HTML-Code gesetzt wurde.</param>
    /// <returns>Der Für das angegebene <see cref="System.UI.Xaml.Controls.WebView"/> gesetzte HTML-Code.</returns>
    [EditorBrowsable(EditorBrowsableState.Never)]
    public static string GetHtml(WebView webView)
    {
        return (string)webView.GetValue(HtmlProperty);
    }

    /// <summary>
    /// Lädt den angegebenen HTML Code in dem angegebenen <see cref="System.UI.Xaml.Controls.WebView"/> als Content.
    /// </summary>
    /// <param name="webView">Das <see cref="System.UI.Xaml.Controls.WebView"/> in dem der angegebene HTML-Code angezeigt werden soll.</param>
    /// <param name="htmlCode">Der anzuzeigende HTML-Code.</param>
    public static void SetHtml(WebView webView, string htmlCode)
    {
        webView.SetValue(HtmlProperty, htmlCode);
    }

    /// <summary>
    /// Bezeichnet die angefügte Html-Abhängigkeitseigenschaft.
    /// </summary>
    public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
        "Html", typeof(string), typeof(WebViewHelper), new PropertyMetadata(string.Empty, OnHtmlChanged));

    private static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        var webView = d as WebView;
        if (webView != null)
        {
            webView.NavigateToString((string)e.NewValue);
        }
    }
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!