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. 如何用绝对位置获取元素的绝对坐标(JavaScript,浏览器)
- 3. firebug - 获取绝对坐标
- 4. 如何获取绝对定位元素相对于另一个元素的放置坐标?
- 5. 获取元素的坐标
- 6. 在DynamicReports中,如何设置报表元素的绝对坐标
- 7. 如何在iOS上的Safari中获取绝对坐标?
- 8. 如何通过javascript获取元素在特定坐标处的ID
- 9. WPF TouchDevice获取绝对坐标
- 10. 获取特定元素的对象
- 11. 获取jQuery元素数组的坐标
- 12. 获取`img`元素的XY坐标
- 13. Applescript - 获取元素的坐标
- 14. 获取DOM元素的屏幕坐标
- 15. 如何根据文档获取SVG中元素的坐标?
- 16. 如何在IE8中获取元素的样式坐标
- 17. 如何获取BHO中网页元素的屏幕坐标
- 18. 如何获取网页中元素的x,y坐标?
- 19. 如何从jquery的父元素中获取子元素的xy坐标?
- 20. Angular JS:如何获取与$ scope中的对象关联的元素的坐标
- 21. 从ClassName获取的所有元素中获取特定元素?
- 22. 如何获取特定元素
- 23. 在触摸坐标获取UI元素
- 24. 通过坐标获取元素?
- 25. 如何获取触摸事件点相对于目标元素的x坐标?
- 26. 如何点击一个元素的特定坐标
- 27. 如何从坐标列表中获取元素
- 28. 如何获取特定元素之前的类的元素数
- 29. 如何获取列表中所有元素的绝对值?
- 30. 如何获取特定div内的光标坐标?
这是不够的,知道的相对或绝对相对于视,但对整个屏幕(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