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]

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

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