예제 #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);
        }
예제 #2
0
 //============================================================
 // <T>加载资源。</T>
 //
 // @param resource 资源
 //============================================================
 public void LoadResource(FRcObject resource)
 {
     // 检查参数
     _resource = resource as FRcControl;
     if (_resource == null)
     {
         return;
     }
     // 属性设置
     chkOptionEnable.Checked       = _resource.OptionEnable;
     chkOptionVisible.Checked      = _resource.OptionVisible;
     cbxDockCd.Text                = REnum.ToString <ERcDock>(_resource.DockCd);
     txtLocation.Text              = _resource.Location.ToString();
     txtSize.Text                  = _resource.Size.ToString();
     txtMargin.Text                = _resource.Margin.ToString();
     txtPadding.Text               = _resource.Padding.ToString();
     qcpForeColor.SelectColorValue = _resource.ForeColor;
     qpeForeResource.LoadResource(_resource.ForeResource);
     qcpBackColor.SelectColorValue = _resource.BackColor;
     qpeBackResource.LoadResource(_resource.BackResourceId);
     qUiInnerBorderProperty.LoadResource(_resource.BorderInner);
     qUiOuterBorderProperty.LoadResource(_resource.BorderOuter);
     // 事件设置
     txtClick.Text       = _resource.OnClick;
     txtDoubleClick.Text = _resource.OnDoubleClick;
     txtMouseDown.Text   = _resource.OnMouseDown;
     txtMouseUp.Text     = _resource.OnMouseUp;
     txtMouseMove.Text   = _resource.OnMouseMove;
     txtMouseEnter.Text  = _resource.OnMouseEnter;
     txtMouseLeave.Text  = _resource.OnMouseLeave;
 }
예제 #3
0
        //============================================================
        // <T>开始绘制处理。</T>
        //
        // @param args 参数
        //============================================================
        public virtual void OnDrawBegin(SUiDrawArgs args)
        {
            FDxContext2d context  = _context.Context;
            FRcControl   resource = ControlResource;

            // 绘制设计背景
            if (_designGround)
            {
                context.FillRectangle(_context.DesignGroundColor.brush, 0, 0, _designSize.Width, _designSize.Height);
            }
            // 绘制后景颜色
            if (resource.BackColor != 0)
            {
                context.FillRectangle(resource.BackColor, 0, 0, _designSize.Width, _designSize.Height);
            }
            // 绘制后景
            DrawResource(_backResource);
        }