मैं अपने ऐप में विभिन्न चीज़ों के लिए System.Windows.Controls.WebBrowser का उपयोग कर रहा हूं और मैंने देखा है कि वेबब्राउज़र पर दिखाई देने पर सजावट काट दिया जाता है। मुझे एहसास है कि WebBrowser नियंत्रण वास्तव में एक COM घटक के चारों ओर एक रैपर है और शायद अलग-अलग प्रस्तुत करता है, लेकिन मुझे आश्चर्य हुआ कि किसी ने यह पता लगाया है कि इसे कैसे हल किया जाए।वेबब्राउज़र नियंत्रण पर एक एडॉर्नर प्रदर्शित करें
यह समस्या है जो मैं देख रहा हूं। यहां मेरे पास सिर्फ एक नमूना एडोर्नर है जो किसी के शीर्ष कोने (नमूना के रूप में) में एक बड़ा लाल वृत्त खींचना है।
जब मैं इस के साथ WebBrowser सजाना, मैं इस परिणाम मिलता है:
मैं चक्र पूरा देखने की उम्मीद।
यहाँ इस बेकार adorner के लिए कोड है मामला है कि उपयोगी है में,: और
public class SillyAdorner : Adorner
{
public SillyAdorner(UIElement element) : base(element)
{
}
protected override void OnRender(DrawingContext drawingContext)
{
drawingContext.DrawEllipse(new SolidColorBrush(Colors.Red), new Pen(), new Point(7, 7), 30, 30);
base.OnRender(drawingContext);
}
}
यहाँ कैसे मैं मेजबान नियंत्रण से OnRender विधि में ब्राउज़र पर लागू है:
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
var layer = AdornerLayer.GetAdornerLayer(browser);
layer.Add(new SillyAdorner(browser));
}
किसी के पास इस के लिए कोई हैक या कामकाज है?
संपादित करें: मैं .NET 4.0 का उपयोग कर रहा हूं, अगर इससे कोई फर्क पड़ता है।
# 2 संपादित करें: WebBrowser HwndHost, जो मैं adorners और hwndsources के बारे में एक या दो सवाल देखा है से विरासत के लिए प्रकट होता है, लेकिन मैं कुछ भी है कि मैं Webcontrol के लिए इसे लागू कर सकता लग रहा है कि नहीं दिखाई दे रहा है, लेकिन उम्मीद है कि यह किसी के लिए उपयोगी जानकारी है।
हाँ .... मैंने उसे कहीं और देखा होगा। ऐसा लगता है कि ऐसा इसलिए है क्योंकि पॉपअप एक एचडब्ल्यूएन भी है, इसलिए यह आसान है। यहां केवल एक चीज है कि आस-पास की अन्य वस्तुओं को सजाने के लिए सजाए गए सामानों में कटौती होती है। मैं इसे प्रतिबिंबित करने के लिए अपना उत्तर अपडेट करूंगा। हालांकि बहुत अच्छा सुझाव है ... मैं अपने adorner को एक hwnd में लपेटने के बारे में देख सकता हूँ। –