private void DrawCaptionText(Graphics g, Rectangle textRect, string text, Font font, bool Effect, Color EffetBack, int EffectWidth, Color FrmColor) { if (Effect) { var size = TextRenderer.MeasureText(text, font); var image = SkinTools.ImageLightEffect(text, font, FrmColor, EffetBack, EffectWidth, new Rectangle(0, 0, textRect.Width, size.Height), true); g.DrawImage(image, textRect.X - (EffectWidth / 2), textRect.Y - (EffectWidth / 2)); } }
private void setRegion() { if (this.radius > 0) { // Rectangle rectangle = new Rectangle(0, 0, base.Width, base.Height); // this.graphicsPath = this.getRoundPath(rectangle, this.radius); // base.Region = new Region(this.graphicsPath); SkinTools.CreateRegion(this, rectangle, this.radius, RoundStyle.All); } else { base.Region = null; } }
protected override void OnPaint(PaintEventArgs e) { var graphics = e.Graphics; // Share.GraphicSetup(graphics); // base.OnPaint(e); //绘制质感的标题栏 if (true) { var lgb = new LinearGradientBrush(CaptionRect, Share.LineTop, Share.LineBottom, 90f); graphics.FillRectangle(lgb, CaptionRect); lgb.Dispose(); var p = new Pen(Share.Line, 1); graphics.DrawLine(p, new Point(0, CaptionRect.Height + 3), new Point(CaptionRect.Width, CaptionRect.Height + 3)); //p.Color = Color.Blue; // p.Width = 5; // graphics.DrawLine(p, new Point(0, this.CaptionRect.Height + 1), new Point(this.CaptionRect.Width, this.CaptionRect.Height+1)); p.Dispose(); } //标题文字 var size = TextRenderer.MeasureText(Text, Font); var image = SkinTools.ImageLightEffect(Text, Font, ForeColor, Color.White, 4, new Rectangle(0, 0, Width, size.Height), true); graphics.DrawImage(image, textRect.X - (4 / 2), textRect.Y - (4 / 2)); //画图标 if (Icon != null) { graphics.DrawIcon(Icon, IconRect); } //画关闭按钮 graphics.DrawImage(btnImg, closeRect); //画边框 var rect = ClientRectangle; rect.X += 3; rect.Y += 3; rect.Width -= 7; rect.Height -= 7; using (var pen = new Pen(Color.DarkGray)) { var path = DrawHelper.CreateRoundPathFPoint(rect, 2); graphics.DrawPath(pen, path); path.Dispose(); } }
protected override void OnRenderSkinFormCaption(SkinFormCaptionRenderEventArgs e) { var graphics = e.Graphics; var clipRectangle = e.ClipRectangle; var skinForm = e.SkinForm; var iconRect = skinForm.IconRect; var empty = Rectangle.Empty; var controlBox = skinForm.ControlBox; var flag2 = skinForm.ControlBox && skinForm.MinimizeBox; var flag3 = skinForm.ControlBox && skinForm.MaximizeBox; var flag4 = skinForm.ControlBox && skinForm.btnCustomImage != null;//skinForm.SysBottomVisibale; var num = 0; if (controlBox) { num += skinForm.CloseBoxSize.Width + skinForm.ControlBoxOffset.X; } if (flag3) { num += skinForm.MaxSize.Width + skinForm.ControlBoxSpace; } if (flag2) { num += skinForm.MiniSize.Width + skinForm.ControlBoxSpace; } if (flag4) { num += skinForm.CustomSize.Width + skinForm.ControlBoxSpace; } // empty = new Rectangle(iconRect.Right + 3, skinForm.BorderPadding.Left + 3, ((clipRectangle.Width - iconRect.Right) - num) - 6, clipRectangle.Height - skinForm.BorderPadding.Left);//old empty = new Rectangle(iconRect.Right + 3, iconRect.Top, ((clipRectangle.Width - iconRect.Right) - num) - 6, clipRectangle.Height - skinForm.BorderPadding.Left); using (new AntiAliasGraphics(graphics)) { DrawCaptionBackground(graphics, clipRectangle, e.Active); if (skinForm.ShowIcon && (skinForm.Icon != null)) { DrawIcon(graphics, iconRect, skinForm.Icon); } if (!string.IsNullOrEmpty(skinForm.Text)) { var effectBack = skinForm.EffectBack; var titleColor = skinForm.TitleColor; if (skinForm.TitleSuitColor) { if (SkinTools.ColorSlantsDarkOrBright(skinForm.BackColor)) { titleColor = Color.White; effectBack = Color.Black; } else { titleColor = Color.Black; effectBack = Color.White; } } DrawCaptionText(graphics, empty, skinForm.Text, skinForm.CaptionFont, skinForm.EffectCaption, effectBack, skinForm.EffectWidth, titleColor); } } }