Example #1
0
        //============================================================
        // <T>计算显示坐标。</T>
        //
        // @return 显示坐标
        //============================================================
        public virtual FIntPoint2 CalculateDisplayPosition()
        {
            float      scale = _context.Scale;
            FIntPoint2 point = new FIntPoint2();
            FUiObject  find  = this;

            while (find != null)
            {
                FUiControl control = find as FUiControl;
                if (control != null)
                {
                    FRcControl controlResource = control.ControlResource;
                    if (control.DesignTop)
                    {
                        point.Add(control.Location);
                        point.X += (int)(controlResource.Margin.Left * scale);
                        point.Y += (int)(controlResource.Margin.Top * scale);
                    }
                    else
                    {
                        point.Add(control.Location, scale);
                        if (control != this)
                        {
                            point.X += (int)(controlResource.Margin.Left * scale);
                            point.Y += (int)(controlResource.Margin.Top * scale);
                        }
                        point.X += (int)(controlResource.Padding.Left * scale);
                        point.Y += (int)(controlResource.Padding.Top * scale);
                    }
                }
                find = find.Parent;
            }
            return(point);
        }
Example #2
0
        //============================================================
        // <T>计算全局坐标。</T>
        //
        // @param scale 缩放
        // @return 全局坐标
        //============================================================
        public virtual FIntPoint2 CalculatePosition()
        {
            FIntPoint2 point = new FIntPoint2();
            FUiObject  find  = this;

            while (find != null)
            {
                FUiControl control = find as FUiControl;
                if (control != null)
                {
                    point.Add(control.Location);
                }
                find = find.Parent;
            }
            return(point);
        }