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]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

ASP.NET Core Server- und Client-Programmierung

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

/// <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!