And*_*mes 6 com wpf hwnd adorner webbrowser-control
我在我的应用程序中使用System.Windows.Controls.WebBrowser进行各种操作,我注意到当它们应该出现在WebBrowser上时,它们会被切断.我意识到WebBrowser控件实际上是一个COM组件的包装器,可能呈现不同的方式,但我想知道是否有人想出如何解决这个问题.
这是我看到的问题.在这里,我只有一个样本装饰,应该在某个东西的顶角绘制一个大的红色圆圈(作为样本).
当我用这个装饰WebBrowser时,我得到了这个结果:
我希望看到完整的圆圈.
这是这个毫无价值的装饰者的代码,以防有用:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我在主机控件的OnRender方法中将其应用于浏览器的方法:
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
var layer = AdornerLayer.GetAdornerLayer(browser);
layer.Add(new SillyAdorner(browser));
}
Run Code Online (Sandbox Code Playgroud)
有没有任何黑客或解决方法?
编辑:我正在使用.NET 4.0,如果这有所作为.
编辑#2:WebBrowser似乎继承自HwndHost,我已经看到了关于adorners和hwndsources的另外一两个问题,但我没有看到任何看起来像我可以为WebControl实现它的东西,但希望这是有用的信息有人.
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |