//============================================================ // <T>开始绘制处理。</T> // // @param args 参数 //============================================================ public override void OnDrawBegin(SUiDrawArgs args) { base.OnDrawBegin(args); // 绘制处理 if (TestVisible()) { // 绘制背景资源 DrawResource(_groundResource); } }
//============================================================ // <T>绘制处理。</T> // // @param args 参数 //============================================================ public virtual void Draw(SUiDrawArgs args) { // 检查有效性 if (!ComponentResource.OptionValid) { return; } // 设置数据 bool visible = TestVisible(); SIntPoint2 position = CalculatePosition(); args.Position.Assign(position); // 计算数据 _designLocation.Assign(CalculateDisplayPosition()); _designSize.Assign(CalculateDisplaySize()); // 开始层处理 _deviceLayer.Begin(_designLocation.X, _designLocation.Y, _designSize.Width, _designSize.Height); // 检查可见性 if (visible) { OnDrawBegin(args); } //............................................................ // 子控件测试 if (_components != null) { foreach (FUiComponent componment in _components) { FUiControl control = componment as FUiControl; if (control != null) { control.Draw(args); } } } //............................................................ // 结束绘制 if (visible) { _context.Context.TransformLocation(_designLocation.X, _designLocation.Y); OnDrawAfter(args); } // 结束层处理 _deviceLayer.End(); }
//============================================================ // <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); }
//============================================================ // <T>设计绘制处理。</T> // // @param args 参数 //============================================================ public virtual void DrawDesign(SUiDrawArgs args) { // 子控件设计绘制处理 if (_components != null) { foreach (FUiComponent componment in _components) { FUiControl control = componment as FUiControl; if (control != null) { control.DrawDesign(args); } } } // 设计绘制处理 if (_designer != null) { _designer.Draw(args); } }
//============================================================ // <T>结束绘制处理。</T> // // @param args 参数 //============================================================ public virtual void OnDrawAfter(SUiDrawArgs args) { FDxContext2d context = _context.Context; // 绘制前景 DrawResource(_foreResource); // 绘制边框 DrawBorder(ControlResource.BorderInner, ControlResource.BorderOuter); //if (_optionBorder) { // SetupColor(_borderColor); // if (_borderColor.Valid) { // context.DrawRectangle(_borderColor.brush, 0, 0, _designSize.Width, _designSize.Height); // } //} // 绘制设计边框 if (_designBorder) { context.DrawRectangle(_context.DesignBorderBackColor.brush, 0, 0, _designSize.Width, _designSize.Height, 2); context.DrawRectangle(_context.DesignBorderForeColor.brush, 0, 0, _designSize.Width, _designSize.Height); } }
//============================================================ // <T>结束绘制处理。</T> // // @param args 参数 //============================================================ public override void OnDrawAfter(SUiDrawArgs args) { base.OnDrawAfter(args); }
//============================================================ // <T>绘制处理。</T> // // @param args 参数 //============================================================ public override void Draw(SUiDrawArgs args) { // 检查有效性 if (!ComponentResource.OptionValid) { return; } // 设置数据 bool visible = TestVisible(); SIntPoint2 position = CalculatePosition(); args.Position.Assign(position); // 计算数据 _designLocation.Assign(CalculateDisplayPosition()); _designSize.Assign(CalculateDisplaySize()); // 开始层处理 _deviceLayer.Begin(_designLocation.X, _designLocation.Y, _designSize.Width, _designSize.Height); // 检查可见性 if (visible) { OnDrawBegin(args); } //............................................................ // 子控件绘制 if (_components != null) { // 绘制分页 FUiScrollItem item = ActiveItem(); if (item != null) { ERcSpread spreadCd = ScrollViewResource.SpreadCd; // 绘制多个 int itemWidth = item.Size.Width + _horizontalSpace; int itemHeight = item.Size.Height + _verticalSpace; if ((spreadCd == ERcSpread.Horizontal) && (_verticalCount > 0)) { for (int n = 0; n < _designItemCount; n++) { int cx = n % _verticalCount; int cy = (int)(n / _verticalCount); item.Location.Set(itemWidth * cx, itemHeight * cy); item.Draw(args); } } else if ((spreadCd == ERcSpread.Vertical) && (_horizontalCount > 0)) { for (int n = 0; n < _designItemCount; n++) { int cx = n % _horizontalCount; int cy = (int)(n / _horizontalCount); item.Location.Set(itemWidth * cx, itemHeight * cy); item.Draw(args); } } // 恢复设置 item.Location.Set(0, 0); } // 绘制节点 foreach (FUiComponent componment in _components) { FUiControl control = componment as FUiControl; if (control == null) { continue; } if (control is FUiScrollItem) { continue; } control.Draw(args); } } //............................................................ // 结束绘制 if (visible) { _context.Context.TransformLocation(_designLocation.X, _designLocation.Y); OnDrawAfter(args); } // 结束层处理 _deviceLayer.End(); }
//============================================================ // <T>开始绘制处理。</T> // // @param args 参数 //============================================================ public override void OnDrawBegin(SUiDrawArgs args) { base.OnDrawBegin(args); // 绘制背景资源 //DrawResource(_groundResource); }