43 lines
1.6 KiB
C#
43 lines
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Drawing;
|
|
using DevComponents.DotNetBar.Metro.ColorTables;
|
|
|
|
namespace DevComponents.DotNetBar.Metro.Rendering
|
|
{
|
|
internal class MetroFormRenderer : MetroRenderer
|
|
{
|
|
public override void Render(MetroRendererInfo renderingInfo)
|
|
{
|
|
MetroAppForm form = renderingInfo.Control as MetroAppForm;
|
|
BorderOverlay overlay = renderingInfo.Control as BorderOverlay;
|
|
if (form == null && overlay != null) form = overlay.Parent as MetroAppForm;
|
|
Graphics g = renderingInfo.PaintEventArgs.Graphics;
|
|
MetroAppFormColorTable fct = renderingInfo.ColorTable.MetroAppForm;
|
|
|
|
Thickness borderThickness = form.BorderThickness;
|
|
BorderColors colors = form.BorderColor;
|
|
if (borderThickness.IsZero && colors.IsEmpty)
|
|
{
|
|
// Get it from table
|
|
borderThickness = form.IsGlassEnabled ? fct.BorderThickness : fct.BorderPlainThickness;
|
|
colors = form.IsActive ? fct.BorderColors : fct.BorderColorsInactive;
|
|
}
|
|
|
|
if (overlay == null) // If overlay is being rendered it does not need fill
|
|
{
|
|
using (SolidBrush brush = new SolidBrush(form.BackColor))
|
|
g.FillRectangle(brush, new Rectangle(0, 0, form.Width, form.Height));
|
|
}
|
|
|
|
|
|
if (!borderThickness.IsZero && !colors.IsEmpty)
|
|
{
|
|
RectangleF br = new RectangleF(0, 0, form.Width, form.Height);
|
|
DrawingHelpers.DrawBorder(g, br, borderThickness, colors);
|
|
}
|
|
}
|
|
}
|
|
}
|