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