2010-04-06 12 views
51

मेरा डेटा संदर्भ ऑब्जेक्ट में एक स्ट्रिंग प्रॉपर्टी है जो HTML को लौटाती है जिसे मुझे WebBrowser नियंत्रण में प्रदर्शित करने की आवश्यकता होती है; मुझे वेबब्राउज़र के किसी भी गुण को बाध्य करने के लिए नहीं मिल रहा है। कोई विचार?डब्ल्यूपीएफ वेबब्रोसर नियंत्रण में स्ट्रिंग से एचटीएमएल प्रदर्शित करना

धन्यवाद!

उत्तर

96

WebBrowser में NavigateToString विधि है जिसका उपयोग आप 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); 
    } 
} 

और जहां lcl xmlns-नाम स्थान है तुम इतनी है कि यह प्रयोग करेंगे (: आप इसे करने के लिए बाध्य करने के लिए सक्षम होना चाहते हैं, तो आप एक संलग्न संपत्ति जब मूल्य में परिवर्तन है कि बस विधि कॉल कर सकते हैं बना सकते हैं -alias):

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

OnHtmlChanged के लिए दूसरा तर्क प्रकार DependencyPropertyChangedEventArgs का होना चाहिए। –

+0

एडम, आप सही हैं, इसे प्रतिबिंबित करने के लिए निश्चित हैं। धन्यवाद! –

+0

मैंने इसे अपने कोड में जोड़ा लेकिन यह मुझे संपादित करने की अनुमति नहीं देता (एक आवश्यक सुविधा)। मैं wpf के लिए बिल्कुल नया हूं इसलिए मुझे यकीन है कि मुझे HTML को संपादित करने की अनुमति देने के लिए क्या बदलना है। –

संबंधित मुद्दे