Пример #1
0
        public void Render(System.Drawing.Graphics graphics, RectangleF bounds)
        {
            var sz = Relayout(bounds);

            if (!sz.IsEmpty)
            {
                graphics.PageUnit = GraphicsUnit.Pixel;
                OptimusRenderer.Render(_layout, graphics);
            }
        }
Пример #2
0
        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);
            }));
        }