developer tip

WPF WebBrowser 컨트롤의 문자열에서 HTML 표시

copycodes 2020. 12. 4. 19:16
반응형

WPF WebBrowser 컨트롤의 문자열에서 HTML 표시


내 데이터 컨텍스트 개체에는 WebBrowser 컨트롤에 표시해야하는 html을 반환하는 문자열 속성이 포함되어 있습니다. 바인딩 할 WebBrowser의 속성을 찾을 수 없습니다. 어떤 아이디어?

감사!


WebBrowserNavigateToString의 당신은 HTML 콘텐츠를 탐색하는 데 사용할 수있는 방법을. 바인딩 할 수 있도록하려면 값이 변경 될 때 메서드를 호출 할 수있는 연결된 속성을 만들 수 있습니다.

public static class BrowserBehavior
{
    public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
        "Html",
        typeof(string),
        typeof(BrowserBehavior),
        new FrameworkPropertyMetadata(OnHtmlChanged));

    [AttachedPropertyBrowsableForType(typeof(WebBrowser))]
    public static string GetHtml(WebBrowser d)
    {
        return (string)d.GetValue(HtmlProperty);
    }

    public static void SetHtml(WebBrowser d, string value)
    {
        d.SetValue(HtmlProperty, value);
    }

    static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        WebBrowser wb = d as WebBrowser;
        if (wb != null)
            wb.NavigateToString(e.NewValue as string);
    }
}

그리고 당신은 그렇게 사용합니다 ( lclxmlns-namespace-alias는 어디에 있습니까 ) :

<WebBrowser lcl:BrowserBehavior.Html="{Binding HtmlToDisplay}" />

참고 URL : https://stackoverflow.com/questions/2585782/displaying-html-from-string-in-wpf-webbrowser-control

반응형