0
A
回答
1
此功能在DotNetBrowser DOM API中不存在。但是可以使用Javascript来解决这种情况。
更新:DotNetBrowser 1.8.3中增加了此功能。现在可以通过DOM API obtain absolute or relative DOMElement position。
0
您可以将窗口,视口和元素的绝对坐标放在一起。 为了让你可以使用Screen.PrimaryScreen.Bounds
财产
这里的屏幕分辨率是一个代码示例:
public partial class Form1 : Form
{
BrowserView browserView;
public Form1()
{
InitializeComponent();
browserView = new WinFormsBrowserView();
browserView.Browser.FinishLoadingFrameEvent += Browser_FinishLoadingFrameEvent;
Controls.Add((Control)browserView);
browserView.Browser.LoadURL("google.com");
}
private void Browser_FinishLoadingFrameEvent(object sender, DotNetBrowser.Events.FinishLoadingEventArgs e)
{
if (e.IsMainFrame)
{
DOMDocument document = e.Browser.GetDocument();
DOMElement element = document.GetElementByName("btnK");
Rectangle rectangle = element.BoundingClientRect;
Rectangle resolution = Screen.PrimaryScreen.Bounds;
Debug.WriteLine("Screen resolution = " + resolution.Width +
'x' + resolution.Height);
Debug.WriteLine("Form X = " + Location.X);
Debug.WriteLine("Form Y = " + Location.Y);
Debug.WriteLine("browserView X = " + ((Control)browserView).Location.X);
Debug.WriteLine("browserView Y = " + ((Control)browserView).Location.Y);
Debug.WriteLine("X = " + rectangle.Location.X);
Debug.WriteLine("Y = " + rectangle.Location.Y);
int absoluteX = Location.X +
((Control)browserView).Location.X + rectangle.Location.X;
int absoluteY = Location.Y +
((Control)browserView).Location.Y + rectangle.Location.Y;
Debug.WriteLine("Absolute X = " + absoluteX);
Debug.WriteLine("Absolute Y = " + absoluteY);
}
}
}
+0
Strage,这个解决方案似乎有效,但并非每次都有效。 –
相关问题
- 1. 如何获取表中某个特定元素的坐标r
- 2. 如何在iOS上的Safari中获取绝对坐标?
- 3. 如何通过javascript获取元素在特定坐标处的ID
- 4. WPF TouchDevice获取绝对坐标
- 5. 获取特定元素的对象
- 6. 如何获取BHO中网页元素的屏幕坐标
- 7. 如何获取网页中元素的x,y坐标?
- 8. 如何获取特定元素
- 9. 通过坐标获取元素?
- 10. 如何获取触摸事件点相对于目标元素的x坐标?
- 11. AS3中的绝对坐标
- 12. 如何获取xml元素的特定子元素?
- 13. 获取特定元素
- 14. 获取特定元素(N,)
- 15. 相对/绝对位置css(转换面元素矩形坐标)
- 16. 获取AngularJs中的特定元素
- 17. 从webkitdirectory元素获取绝对路径
- 18. 获取地理坐标对给定源坐标对和距离
- 19. 如何绑定Canvas中的形状/控件的绝对坐标
- 20. 如何获得<g>组内对象的绝对坐标?
- 21. OpenGL绝对坐标
- 22. 从坐标获取像素
- 23. 如何获取angularJs指令链接函数中元素标签的坐标
- 24. 如何使用C#获取HTML元素坐标?
- 25. 获取当前点击坐标相对于一个元素
- 26. 如何从HERE地图获取特定地点的GPS坐标
- 27. 替换python中特定坐标的矩阵元素
- 28. Java从Object中获取特定元素[]
- 29. 如何根据android系统中的绝对坐标获取控件?
- 30. 如何获得图像元素的绝对定位?
这是不够的,知道的相对或绝对相对于视,但对整个屏幕(incluing像素解析度)。在Internet Explorer中,在DOM中有一个转换服务,在DotNetBrowser中任何相当的东西: var rect = el2.getBoundingClientRect(); var displayServices = el.document as IDisplayServices; var point = new tagPOINT {x = rect.left,y = rect.top}; displayServices.TransformPoint(ref point,_COORD_SYSTEM.COORD_SYSTEM_FRAME, _COORD_SYSTEM.COORD_SYSTEM_GLOBAL,el); – Paulo