//============================================================ // <T>绘制处理。</T> // // @param args 参数 //============================================================ public override void Draw(SUiDrawArgs args) { // 设置数据 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 (_activePage != null) { // 绘制分页 _activePage.Draw(args); // 绘制节点 if (_components != null) { foreach (FUiComponent componment in _components) { FUiControl control = componment as FUiControl; if (control == null) { continue; } if (control is FUiPage) { continue; } control.Draw(args); } } } //............................................................ // 结束绘制 if (visible) { _context.Context.TransformLocation(_designLocation.X, _designLocation.Y); OnDrawAfter(args); } // 结束层处理 _deviceLayer.End(); }