//============================================================ // <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); }
//============================================================ // <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); }