programing

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

linuxpc 2023. 4. 26. 23:01
반응형

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

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

감사합니다!

WebBrowser에는 HTML 콘텐츠를 탐색하는 데 사용할 수 있는 NavigateToString 메서드가 있습니다.이 속성에 바인딩할 수 있도록 하려면 값이 변경될 때 메서드를 호출하기만 하면 되는 속성을 만들 수 있습니다.

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-sys-sys):

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

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

반응형