public void Render(System.Drawing.Graphics graphics, RectangleF bounds) { var sz = Relayout(bounds); if (!sz.IsEmpty) { graphics.PageUnit = GraphicsUnit.Pixel; OptimusRenderer.Render(_layout, graphics); } }
public void HitTest(int x, int y, Func <Rectangle, Node, bool> handler) { if (_layout == null) { return; } OptimusRenderer.HitTest(_layout, x, y, FSharpFunc <Tuple <Rectangle, Layout.RenderItem>, bool> .FromConverter( t => { HtmlElement elt = null; var qwe = t.Item2 as Layout.RenderItem.Element; if (qwe != null) { elt = qwe.Item.Node as HtmlElement; } else { var text = t.Item2 as Layout.RenderItem.Text; if (text != null) { elt = text.Item.Node.ParentNode as HtmlElement; } } if (elt != null) { if (!handler(new Rectangle(t.Item1.Left, t.Item1.Top, t.Item1.Width, t.Item1.Height), elt)) { elt.OwnerDocument.ActiveElement = elt; elt.Click(); } } return(true); })); }