本文整理汇总了C#中RoundStyle类的典型用法代码示例。如果您正苦于以下问题:C# RoundStyle类的具体用法?C# RoundStyle怎么用?C# RoundStyle使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
RoundStyle类属于命名空间,在下文中一共展示了RoundStyle类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: RenderBorder
public static void RenderBorder(Graphics g, Rectangle rect, Color borderColor,
ButtonBorderType borderType, int radius, RoundStyle roundType)
{
rect.Width--;
rect.Height--;
bool simpleRect = (borderType == ButtonBorderType.Rectangle && (roundType == RoundStyle.None || radius < 2));
SmoothingMode newMode = simpleRect ? SmoothingMode.HighSpeed : SmoothingMode.AntiAlias;
using (NewSmoothModeGraphics ng = new NewSmoothModeGraphics(g, newMode))
{
using (Pen p = new Pen(borderColor))
{
if (simpleRect)
{
g.DrawRectangle(p, rect);
}
else if (borderType == ButtonBorderType.Ellipse)
{
g.DrawEllipse(p, rect);
}
else
{
using (GraphicsPath path = GraphicsPathHelper.CreateRoundedRect(rect, radius, roundType, false))
{
g.DrawPath(p, path);
}
}
}
}
}
开发者ID:webxiaohua,项目名称:SmartControls,代码行数:31,代码来源:BasicBlockPainter.cs
示例2: RenderBackgroundInternal
internal static void RenderBackgroundInternal(
Graphics g,
Rectangle rect,
Color baseColor,
Color borderColor,
Color innerBorderColor,
RoundStyle style,
int roundWidth,
bool drawBorder,
bool drawGlass,
LinearGradientMode mode)
{
RenderBackgroundInternal(
g,
rect,
baseColor,
borderColor,
innerBorderColor,
style,
8,
0.45f,
drawBorder,
drawGlass,
mode);
}
开发者ID:GarnettLuo,项目名称:XiaoCai.WinformUI,代码行数:25,代码来源:RenderHelper.cs
示例3: CreatePath
public static GraphicsPath CreatePath(Rectangle rect, int radius, RoundStyle style, bool correction)
{
GraphicsPath path = new GraphicsPath();
int radiusCorrection = correction ? 1 : 0;
switch (style)
{
case RoundStyle.None:
path.AddRectangle(rect);
break;
case RoundStyle.All:
path.AddArc(rect.X, rect.Y, radius, radius, 180f, 90f);
path.AddArc((rect.Right - radius) - radiusCorrection, rect.Y, radius, radius, 270f, 90f);
path.AddArc((rect.Right - radius) - radiusCorrection, (rect.Bottom - radius) - radiusCorrection, radius, radius, 0f, 90f);
path.AddArc(rect.X, (rect.Bottom - radius) - radiusCorrection, radius, radius, 90f, 90f);
break;
case RoundStyle.Left:
path.AddArc(rect.X, rect.Y, radius, radius, 180f, 90f);
path.AddLine(rect.Right - radiusCorrection, rect.Y, rect.Right - radiusCorrection, rect.Bottom - radiusCorrection);
path.AddArc(rect.X, (rect.Bottom - radius) - radiusCorrection, radius, radius, 90f, 90f);
break;
case RoundStyle.Right:
path.AddArc((rect.Right - radius) - radiusCorrection, rect.Y, radius, radius, 270f, 90f);
path.AddArc((rect.Right - radius) - radiusCorrection, (rect.Bottom - radius) - radiusCorrection, radius, radius, 0f, 90f);
path.AddLine(rect.X, rect.Bottom - radiusCorrection, rect.X, rect.Y);
break;
case RoundStyle.Top:
path.AddArc(rect.X, rect.Y, radius, radius, 180f, 90f);
path.AddArc((rect.Right - radius) - radiusCorrection, rect.Y, radius, radius, 270f, 90f);
path.AddLine(rect.Right - radiusCorrection, rect.Bottom - radiusCorrection, rect.X, rect.Bottom - radiusCorrection);
break;
case RoundStyle.Bottom:
path.AddArc((rect.Right - radius) - radiusCorrection, (rect.Bottom - radius) - radiusCorrection, radius, radius, 0f, 90f);
path.AddArc(rect.X, (rect.Bottom - radius) - radiusCorrection, radius, radius, 90f, 90f);
path.AddLine(rect.X, rect.Y, rect.Right - radiusCorrection, rect.Y);
break;
case RoundStyle.BottomLeft:
path.AddArc(rect.X, (rect.Bottom - radius) - radiusCorrection, radius, radius, 90f, 90f);
path.AddLine(rect.X, rect.Y, rect.Right - radiusCorrection, rect.Y);
path.AddLine(rect.Right - radiusCorrection, rect.Y, rect.Right - radiusCorrection, rect.Bottom - radiusCorrection);
break;
case RoundStyle.BottomRight:
path.AddArc((rect.Right - radius) - radiusCorrection, (rect.Bottom - radius) - radiusCorrection, radius, radius, 0f, 90f);
path.AddLine(rect.X, rect.Bottom - radiusCorrection, rect.X, rect.Y);
path.AddLine(rect.X, rect.Y, rect.Right - radiusCorrection, rect.Y);
break;
}
path.CloseFigure();
return path;
}
开发者ID:zhushengwen,项目名称:example-zhushengwen,代码行数:56,代码来源:GraphicsPathHelper.cs
示例4: CreateRegion
public static void CreateRegion(Control control, Rectangle bounds, int radius, RoundStyle roundStyle)
{
using (GraphicsPath path = GraphicsPathHelper.CreatePath(bounds, radius, roundStyle, true))
{
Region region = new Region(path);
path.Widen(Pens.White);
region.Union(path);
if (control.Region != null)
{
control.Region.Dispose();
}
control.Region = region;
}
}
开发者ID:jxdong1013,项目名称:archivems,代码行数:14,代码来源:RegionHelper.cs
示例5: Awake
/// <summary>
///
/// </summary>
void Awake()
{
//When you start from room scene, return to lobby for connect to server first.
if (!PhotonNetwork.connected || PhotonNetwork.room == null)
{
Application.LoadLevel(0);
return;
}
isFinish = false;
if ((string)PhotonNetwork.room.customProperties[PropiertiesKeys.RoomRoundKey] == "1")
{
m_RoundStyle = RoundStyle.Rounds;
}
else
{
m_RoundStyle = RoundStyle.OneMacht;
}
GetTime();
}
开发者ID:tegleg,项目名称:mfp,代码行数:22,代码来源:bl_RoundTime.cs
示例6: RenderRectangleGlass
public static void RenderRectangleGlass(Graphics g, Rectangle ownerRect,
int ownerRadius, RoundStyle ownerRoundTye, GlassPosition position,
float angle, float glassLengthFactor, Color glassColor, int alpha1, int alpha2)
{
if (!(glassLengthFactor > 0 && glassLengthFactor < 1))
throw new ArgumentException("glassLengthFactor must be between 0 and 1, but not include 0 and 1. ",
"glassLengthFactor");
Rectangle rect = CalcGlassRect(ownerRect, position, glassLengthFactor);
RoundStyle round = CalcRoundStyle(position, ownerRadius, ownerRoundTye);
if (rect.Width < 1 || rect.Height < 1)
return;
BasicBlockPainter.RenderLinearGradientBackground(
g,
rect,
Color.FromArgb(alpha1, glassColor),
Color.FromArgb(alpha2, glassColor),
angle,
ownerRadius,
round);
}
开发者ID:webxiaohua,项目名称:SmartControls,代码行数:22,代码来源:GlassPainter.cs
示例7: RenderBackgroundInternal
internal static void RenderBackgroundInternal(
Graphics g,
Rectangle rect,
Color baseColor,
Color borderColor,
Color innerBorderColor,
RoundStyle style,
bool drawBorder,
bool drawGlass,
System.Drawing.Drawing2D.LinearGradientMode mode)
{
RenderBackgroundInternal(
g,
rect,
baseColor,
borderColor,
innerBorderColor,
style,
8,
drawBorder,
drawGlass,
mode);
}
开发者ID:caocf,项目名称:workspace-kepler,代码行数:23,代码来源:RenderHelper.cs
示例8: RenderFlatBackground
public static void RenderFlatBackground(Graphics g, Rectangle rect, Color backColor,
ButtonBorderType borderType, int radius, RoundStyle roundType)
{
SmoothingMode newMode;
bool simpleRect = (borderType == ButtonBorderType.Rectangle && (roundType == RoundStyle.None || radius < 2));
if (simpleRect)
{
newMode = SmoothingMode.HighSpeed;
}
else
{
newMode = SmoothingMode.AntiAlias;
rect.Width--;
rect.Height--;
}
using (NewSmoothModeGraphics ng = new NewSmoothModeGraphics(g, newMode))
{
using (SolidBrush sb = new SolidBrush(backColor))
{
if (simpleRect)
{
g.FillRectangle(sb, rect);
}
else if (borderType == ButtonBorderType.Ellipse)
{
g.FillEllipse(sb, rect);
}
else
{
using (GraphicsPath path = GraphicsPathHelper.CreateRoundedRect(rect, radius, roundType, false))
{
g.FillPath(sb, path);
}
}
}
}
}
开发者ID:webxiaohua,项目名称:SmartControls,代码行数:37,代码来源:BasicBlockPainter.cs
示例9: RenderLinearGradientBackground
public static void RenderLinearGradientBackground(Graphics g, Rectangle rect,
Color color1, Color color2, float angle, int radius, RoundStyle roundType)
{
SmoothingMode newMode;
bool simpleRect = (roundType == RoundStyle.None || radius < 2);
if (simpleRect)
{
newMode = SmoothingMode.HighSpeed;
}
else
{
newMode = SmoothingMode.AntiAlias;
rect.Width--;
rect.Height--;
}
if (rect.Width < 1 || rect.Height < 1)
return;
using (NewSmoothModeGraphics ng = new NewSmoothModeGraphics(g, newMode))
{
using (LinearGradientBrush lb = new LinearGradientBrush(
rect, color1, color2, angle))
{
if (simpleRect)
{
g.FillRectangle(lb, rect);
}
else
{
using (GraphicsPath path = GraphicsPathHelper.CreateRoundedRect(rect, radius, roundType, false))
{
g.FillPath(lb, path);
}
}
}
}
}
开发者ID:webxiaohua,项目名称:SmartControls,代码行数:38,代码来源:BasicBlockPainter.cs
示例10: RenderScrollBarArrowInternal
internal void RenderScrollBarArrowInternal(
Graphics g,
Rectangle rect,
//Color baseColor,
//Color borderColor,
//Color innerBorderColor,
Color arrowColor,
RoundStyle roundStyle,
bool drawBorder,
bool drawGlass,
ArrowDirection arrowDirection,
LinearGradientMode mode)
{
//RenderHelper.RenderBackgroundInternal(
// g,
// rect,
// baseColor,
// borderColor,
// innerBorderColor,
// roundStyle,
// 0,
// .45F,
// drawBorder,
// drawGlass,
// mode);
using (SolidBrush brush = new SolidBrush(arrowColor))
{
RenderArrowInternal(
g,
rect,
arrowDirection,
brush);
}
}
开发者ID:jxdong1013,项目名称:archivems,代码行数:35,代码来源:TCComboBox.cs
示例11: DrawCaptionBorder
private void DrawCaptionBorder(Graphics g, Rectangle captionRect , int roundWidth , RoundStyle style , Color innerBorderColor )
{
using (GraphicsPath path =
GraphicsPathHelper.CreatePath(captionRect, roundWidth, style, false))
{
using (Pen pen = new Pen(innerBorderColor))
{
g.SmoothingMode = SmoothingMode.AntiAlias;
g.DrawPath(pen, path);
}
}
}
开发者ID:jxdong1013,项目名称:archivems,代码行数:12,代码来源:SkinFormPictureRenderer.cs
示例12: CreateRoundedRect
public static GraphicsPath CreateRoundedRect(Rectangle rect, int radius, RoundStyle type, bool shorten)
{
GraphicsPath path = new GraphicsPath();
if (shorten)
{
rect.Width--;
rect.Height--;
}
if (radius < 2)
type = RoundStyle.None;
Rectangle rectTopLeft = new Rectangle(rect.X, rect.Y, radius, radius);
Rectangle rectTopRight = new Rectangle(rect.Right - radius, rect.Y, radius, radius);
Rectangle rectBottomLeft = new Rectangle(rect.X, rect.Bottom - radius, radius, radius);
Rectangle rectBottomRight = new Rectangle(rect.Right - radius, rect.Bottom - radius, radius, radius);
Point p1 = new Point(rect.X, rect.Y);
Point p2 = new Point(rect.Right, rect.Y);
Point p3 = new Point(rect.Right, rect.Bottom);
Point p4 = new Point(rect.X, rect.Bottom);
switch (type)
{
case RoundStyle.None:
path.AddRectangle(rect);
break;
case RoundStyle.All:
path.AddArc(rectTopLeft, 180, 90);
path.AddArc(rectTopRight, 270, 90);
path.AddArc(rectBottomRight, 0, 90);
path.AddArc(rectBottomLeft, 90, 90);
break;
case RoundStyle.Top:
path.AddArc(rectTopLeft, 180, 90);
path.AddArc(rectTopRight, 270, 90);
path.AddLine(p3, p4);
break;
case RoundStyle.Bottom:
path.AddArc(rectBottomRight, 0, 90);
path.AddArc(rectBottomLeft, 90, 90);
path.AddLine(p1, p2);
break;
case RoundStyle.Left:
path.AddArc(rectBottomLeft, 90, 90);
path.AddArc(rectTopLeft, 180, 90);
path.AddLine(p2, p3);
break;
case RoundStyle.Right:
path.AddArc(rectTopRight, 270, 90);
path.AddArc(rectBottomRight, 0, 90);
path.AddLine(p4, p1);
break;
default:
break;
}
path.CloseFigure();
return path;
}
开发者ID:webxiaohua,项目名称:SmartControls,代码行数:59,代码来源:GraphicsPathHelper.cs
示例13: CalcRoundStyle
private static RoundStyle CalcRoundStyle(GlassPosition pos, int radius, RoundStyle ownerStyle)
{
if (radius < 2 || ownerStyle == RoundStyle.None)
return RoundStyle.None;
switch (pos)
{
case GlassPosition.Fill:
return ownerStyle;
case GlassPosition.Top:
if (ownerStyle == RoundStyle.All || ownerStyle == RoundStyle.Top)
return RoundStyle.Top;
else
return RoundStyle.None;
case GlassPosition.Bottom:
if (ownerStyle == RoundStyle.All || ownerStyle == RoundStyle.Bottom)
return RoundStyle.Bottom;
else
return RoundStyle.None;
case GlassPosition.Left:
if (ownerStyle == RoundStyle.All || ownerStyle == RoundStyle.Left)
return RoundStyle.Left;
else
return RoundStyle.None;
case GlassPosition.Right:
if (ownerStyle == RoundStyle.All || ownerStyle == RoundStyle.Right)
return RoundStyle.Right;
else
return RoundStyle.None;
default:
return RoundStyle.None;
}
}
开发者ID:webxiaohua,项目名称:SmartControls,代码行数:32,代码来源:GlassPainter.cs
示例14: CreateRegion
/// <summary>
/// 样式绘制圆角
/// </summary>
/// <param name="hWnd">控件句柄</param>
/// <param name="radius">圆角</param>
/// <param name="roundStyle">圆角样式</param>
/// <param name="redraw">是否重画</param>
public static void CreateRegion(
IntPtr hWnd,
int radius,
RoundStyle roundStyle,
bool redraw)
{
RECT bounds = new RECT();
NativeMethods.GetWindowRect(hWnd, ref bounds);
Rectangle rect = new Rectangle(
Point.Empty, bounds.Size);
if (roundStyle != RoundStyle.None)
{
using (GraphicsPath path =
GraphicsPathHelper.CreatePath(
rect, radius, roundStyle, true))
{
using (Region region = new Region(path))
{
path.Widen(Pens.White);
region.Union(path);
IntPtr hDc = NativeMethods.GetWindowDC(hWnd);
try
{
using (Graphics g = Graphics.FromHdc(hDc))
{
NativeMethods.SetWindowRgn(hWnd, region.GetHrgn(g), redraw);
}
}
finally
{
NativeMethods.ReleaseDC(hWnd, hDc);
}
}
}
}
else
{
IntPtr hRgn = NativeMethods.CreateRectRgn(0, 0, rect.Width, rect.Height);
NativeMethods.SetWindowRgn(hWnd, hRgn, redraw);
}
}
开发者ID:panshuiqing,项目名称:winform-ui,代码行数:50,代码来源:SkinTools.cs
示例15: CreateRegion
public static void CreateRegion(Control control, Rectangle bounds, int radius, RoundStyle roundStyle)
{
using (GraphicsPath path = CreatePath(bounds, radius, roundStyle, true))
{
Region region = new Region(path);
path.Widen(Pens.White);
region.Union(path);
control.Region = region;
}
}
开发者ID:weitaoxiao,项目名称:ClientEngine,代码行数:10,代码来源:GraphicUtils.cs
示例16: DrawBorder
private void DrawBorder(Graphics g, Rectangle rect, RoundStyle roundStyle, int radius, CCSkinMain frm)
{
g.SmoothingMode = SmoothingMode.HighQuality;
rect.Width--;
rect.Height--;
using (GraphicsPath path = GraphicsPathHelper.CreatePath(rect, radius, roundStyle, false))
{
using (Pen pen = new Pen(this.ColorTable.Border))
{
g.DrawPath(pen, path);
}
}
rect.Inflate(-1, -1);
using (GraphicsPath path = GraphicsPathHelper.CreatePath(rect, radius, roundStyle, false))
{
using (Pen pen = new Pen(this.ColorTable.InnerBorder))
{
g.DrawPath(pen, path);
}
}
}
开发者ID:zhushengwen,项目名称:example-zhushengwen,代码行数:21,代码来源:SkinFormProfessionalRenderer.cs
示例17: RenderBackgroundInternal
internal void RenderBackgroundInternal(Graphics g, Rectangle rect, Color baseColor, Color borderColor, Color innerBorderColor, RoundStyle style, int roundWidth, float basePosition, bool drawBorder, bool drawGlass, LinearGradientMode mode)
{
if (drawBorder)
{
rect.Width--;
rect.Height--;
}
if ((rect.Width > 0) && (rect.Height > 0))
{
using (LinearGradientBrush brush = new LinearGradientBrush(rect, Color.Transparent, Color.Transparent, mode))
{
Rectangle rectangle;
SolidBrush brush2;
RectangleF ef;
Pen pen;
Color[] colorArray = new Color[] { this.GetColor(baseColor, 0, 0x23, 0x18, 9), this.GetColor(baseColor, 0, 13, 8, 3), baseColor, this.GetColor(baseColor, 0, 0x44, 0x45, 0x36) };
ColorBlend blend = new ColorBlend();
float[] numArray = new float[4];
numArray[1] = basePosition;
numArray[2] = basePosition + 0.05f;
numArray[3] = 1f;
blend.Positions = numArray;
blend.Colors = colorArray;
brush.InterpolationColors = blend;
if (style != RoundStyle.None)
{
GraphicsPath path;
using (path = GraphicsPathHelper.CreatePath(rect, roundWidth, style, false))
{
g.FillPath(brush, path);
}
if (baseColor.A > 80)
{
rectangle = rect;
if (mode == LinearGradientMode.Vertical)
{
rectangle.Height = (int) (rectangle.Height * basePosition);
}
else
{
rectangle.Width = (int) (rect.Width * basePosition);
}
using (GraphicsPath path2 = GraphicsPathHelper.CreatePath(rectangle, roundWidth, RoundStyle.Top, false))
{
using (brush2 = new SolidBrush(Color.FromArgb(80, 0xff, 0xff, 0xff)))
{
g.FillPath(brush2, path2);
}
}
}
if (drawGlass)
{
ef = rect;
if (mode == LinearGradientMode.Vertical)
{
ef.Y = rect.Y + (rect.Height * basePosition);
ef.Height = (rect.Height - (rect.Height * basePosition)) * 2f;
}
else
{
ef.X = rect.X + (rect.Width * basePosition);
ef.Width = (rect.Width - (rect.Width * basePosition)) * 2f;
}
this.DrawGlass(g, ef, 170, 0);
}
if (drawBorder)
{
using (path = GraphicsPathHelper.CreatePath(rect, roundWidth, style, false))
{
using (pen = new Pen(borderColor))
{
g.DrawPath(pen, path);
}
}
rect.Inflate(-1, -1);
using (path = GraphicsPathHelper.CreatePath(rect, roundWidth, style, false))
{
using (pen = new Pen(innerBorderColor))
{
g.DrawPath(pen, path);
}
}
}
}
else
{
g.FillRectangle(brush, rect);
if (baseColor.A > 80)
{
rectangle = rect;
if (mode == LinearGradientMode.Vertical)
{
rectangle.Height = (int) (rectangle.Height * basePosition);
}
else
{
rectangle.Width = (int) (rect.Width * basePosition);
}
using (brush2 = new SolidBrush(Color.FromArgb(80, 0xff, 0xff, 0xff)))
{
//.........这里部分代码省略.........
开发者ID:songques,项目名称:CSSIM_Solution,代码行数:101,代码来源:FileTransfersItem.cs
示例18: CreatePathHalf
/// <summary>
/// 建立带有圆角样式的路径。取横向一半顶部(用于按钮玻璃效果)
/// </summary>
/// <param name="rect">用来建立路径的矩形。</param>
/// <param name="_radius">圆角的大小。</param>
/// <param name="style">圆角的样式。</param>
/// <param name="correction">是否把矩形长宽减 1,以便画出边框。</param>
/// <returns>建立的路径。</returns>
public static GraphicsPath CreatePathHalf(
Rectangle rect, int radius, RoundStyle style, bool correction)
{
GraphicsPath path = new GraphicsPath();
int radiusCorrection = correction ? 1 : 0;
switch (style)
{
case RoundStyle.None:
path.AddRectangle(new Rectangle(rect.X, rect.Y, rect.Width - radiusCorrection, rect.Height/2 - radiusCorrection));
break;
case RoundStyle.All:
//顺时针
path.AddArc(rect.X, rect.Y, radius, radius, 180, 90);
path.AddArc(
rect.Right - radius - radiusCorrection,
rect.Y,
radius,
radius,
270,
90);
path.AddLine(rect.Right - radiusCorrection,
rect.Y + rect.Height / 2 - radiusCorrection,
rect.X,
rect.Y + rect.Height / 2 - radiusCorrection);
break;
case RoundStyle.Left:
path.AddArc(rect.X, rect.Y, radius, radius, 180, 90);
path.AddLine(
rect.Right - radiusCorrection, rect.Y,
rect.Right - radiusCorrection, rect.Y + rect.Height / 2 - radiusCorrection);
path.AddLine(
rect.Right - radiusCorrection, rect.Y + rect.Height / 2 - radiusCorrection,
rect.X, rect.Y + rect.Height / 2 - radiusCorrection);
break;
case RoundStyle.Right:
path.AddArc(
rect.Right - radius - radiusCorrection,
rect.Y,
radius,
radius,
270,
90);
path.AddLine(rect.Right - radiusCorrection, rect.Y + rect.Height / 2 - radiusCorrection,
rect.X, rect.Y + rect.Height / 2 - radiusCorrection);
path.AddLine(rect.X, rect.Y + rect.Height / 2 - radiusCorrection,
rect.X, rect.Y);
break;
case RoundStyle.Top:
path.AddArc(rect.X, rect.Y, radius, radius, 180, 90);
path.AddArc(
rect.Right - radius - radiusCorrection,
rect.Y,
radius,
radius,
270,
90);
path.AddLine(
rect.Right - radiusCorrection, rect.Y + rect.Height / 2 - radiusCorrection,
rect.X, rect.Y + rect.Height / 2 - radiusCorrection);
break;
case RoundStyle.Bottom:
path.AddRectangle(new Rectangle(rect.X, rect.Y, rect.Width - radiusCorrection, rect.Height / 2 - radiusCorrection));
break;
}
path.CloseFigure();
return path;
}
开发者ID:JackWangCUMT,项目名称:winform-control-lib,代码行数:82,代码来源:GraphicsPathHelper.cs
示例19: RenderBackgroundInternal
internal static void RenderBackgroundInternal(
Graphics g,
Rectangle rect,
Color baseColor,
Color borderColor,
Color innerBorderColor,
RoundStyle style,
int roundWidth,
float basePosition,
bool drawBorder,
bool drawGlass,
LinearGradientMode mode)
{
if (drawBorder)
{
rect.Width--;
rect.Height--;
}
if (rect.Width == 0 || rect.Height == 0)
{
return;
}
using (LinearGradientBrush brush = new LinearGradientBrush(
rect, Color.Transparent, Color.Transparent, mode))
{
Color[] colors = new Color[4];
colors[0] = GetColor(baseColor, 0, 35, 24, 9);
colors[1] = GetColor(baseColor, 0, 13, 8, 3);
colors[2] = baseColor;
colors[3] = GetColor(baseColor, 0, 35, 24, 9);
ColorBlend blend = new ColorBlend();
blend.Positions = new float[] { 0.0f, basePosition, basePosition + 0.05f, 1.0f };
blend.Colors = colors;
brush.InterpolationColors = blend;
if (style != RoundStyle.None)
{
using (GraphicsPath path =
GraphicsPathHelper.CreatePath(rect, roundWidth, style, false))
{
g.FillPath(brush, path);
}
if (baseColor.A > 80)
{
Rectangle rectTop = rect;
if (mode == LinearGradientMode.Vertical)
{
rectTop.Height = (int)(rectTop.Height * basePosition);
}
else
{
rectTop.Width = (int)(rect.Width * basePosition);
}
using (GraphicsPath pathTop = GraphicsPathHelper.CreatePath(
rectTop, roundWidth, RoundStyle.Top, false))
{
using (SolidBrush brushAlpha =
new SolidBrush(Color.FromArgb(128, 255, 255, 255)))
{
g.FillPath(brushAlpha, pathTop);
}
}
}
if (drawGlass)
{
RectangleF glassRect = rect;
if (mode == LinearGradientMode.Vertical)
{
glassRect.Y = rect.Y + rect.Height * basePosition;
glassRect.Height = (rect.Height - rect.Height * basePosition) * 2;
}
else
{
glassRect.X = rect.X + rect.Width * basePosition;
glassRect.Width = (rect.Width - rect.Width * basePosition) * 2;
}
ControlPaintEx.DrawGlass(g, glassRect, 170, 0);
}
if (drawBorder)
{
using (GraphicsPath path =
GraphicsPathHelper.CreatePath(rect, roundWidth, style, false))
{
using (Pen pen = new Pen(borderColor))
{
g.DrawPath(pen, path);
}
}
rect.Inflate(-1, -1);
using (GraphicsPath path =
GraphicsPathHelper.CreatePath(rect, roundWidth, style, false))
{
using (Pen pen = new Pen(innerBorderColor))
//.........这里部分代码省略.........
开发者ID:piaolingzxh,项目名称:Justin,代码行数:101,代码来源:RenderHelper.cs
示例20: DrawGradientRoundRect
internal static void DrawGradientRoundRect(
Graphics g,
Rectangle rect,
Color begin,
Color end,
Color border,
Color innerBorder,
Blend blend,
LinearGradientMode mode,
int radios,
RoundStyle roundStyle,
bool drawBorder,
bool drawInnderBorder)
{
using (GraphicsPath path = GraphicsPathHelper.CreatePath(
rect, radios, roundStyle, true))
{
using (LinearGradientBrush brush = new LinearGradientBrush(
rect, begin, end, mode))
{
brush.Blend = blend;
g.FillPath(brush, path);
}
if (drawBorder)
{
using (Pen pen = new Pen(border))
{
g.DrawPath(pen, path);
}
}
}
if (drawInnderBorder)
{
rect.Inflate(-1, -1);
using (GraphicsPath path = GraphicsPathHelper.CreatePath(
rect, radios, roundStyle, true))
{
using (Pen pen = new Pen(innerBorder))
{
g.DrawPath(pen, path);
}
}
}
}
开发者ID:piaolingzxh,项目名称:Justin,代码行数:46,代码来源:ControlPaintEx.cs
注:本文中的RoundStyle类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论