2009-12-16 6 views
10

मैं कुछ बहुत ही सरल HTML सामग्री प्रदर्शित करने के लिए WPF WebBrowser घटक का उपयोग कर रहा हूं। हालांकि, चूंकि मैं सामग्री आकार को पहले से नहीं जानता, इसलिए जब मैं कुछ डेटासेट लोड करता हूं तो मुझे वर्तमान में नियंत्रण पर स्क्रॉलबार मिल रहा है।डब्ल्यूपीएफ वेब ब्राउजर के साथ स्क्रॉलबार को रोकें

असल में, वेबब्राउज़र को आकार में विस्तार करने के लिए मैं मजबूर कैसे कर सकता हूं (या अन्यथा मजबूर करने के बराबर प्रभाव) ताकि सभी सामग्री स्क्रॉलबार की आवश्यकता के बिना प्रदर्शित की जा सके?

उत्तर

7

मुझे लगता है कि आप अपनी दस्तावेज़ प्रॉपर्टी के माध्यम से वेबब्रोसर घटक सामग्री की चौड़ाई और ऊंचाई प्राप्त कर सकते हैं जो mshtml.HTMLDocument प्रकार का होना चाहिए। मेरा मानना ​​है कि आपको आवश्यक आकार प्राप्त करने के लिए शरीर या दस्तावेज़ एलिमेंट गुणों का उपयोग करने में सक्षम होना चाहिए; इस तरह ख़ाली:

mshtml.HTMLDocument htmlDoc = webBrowser.Document as mshtml.HTMLDocument; 
if (htmlDoc != null && htmlDoc.body != null) 
{ 
    mshtml.IHTMLElement2 body = (mshtml.IHTMLElement2)htmlDoc.body; 
    webBrowser.Width = body.scrollWidth; 
    webBrowser.Height = body.scrollHeight; 
} 

आशा है कि यह मदद करता है,

+0

+1:

यहाँ मेरी समाधान है। सही लगता है :) – Anvaka

+0

दुर्भाग्य से WebBrowser.Document कभी सेट नहीं लगता है। यह पेजों को लोड करने का दुष्प्रभाव हो सकता है, मुझे यकीन नहीं है। –

+0

क्या आप कुछ पेज पोस्ट कर सकते हैं कि आप अपने पृष्ठों को कैसे लोड कर रहे हैं। thnx –

6

का संबंध पिछले समाधान के साथ समस्या यह है कि नियंत्रण आकार बदलता है और ब्राउज़र नियंत्रण के बाद से काटा नहीं जा सकता है और अन्य WPF तत्वों के शीर्ष पर हमेशा होता है है, यह अन्य तत्वों को कवर कर सकता है।

Dim body = CType(WebBrowserControl.Document, mshtml.HTMLDocumentClass) 
body.documentElement.style.overflow = "hidden" 

सादर,

आसफ़

+0

यह मेरे लिए काम नहीं करता है; –