zoukankan      html  css  js  c++  java
  • C# JackLib系列之GdiHelper圆角矩形的快速生成

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Drawing;
    using System.Drawing.Drawing2D;

    namespace JackLib.GdiHelper {

        /// <summary>
        /// GdiHelper
        /// </summary>
        public class GdiHelper {
            /// <summary>
            /// 获取圆角矩形
            /// </summary>
            /// <param name="rect">原始矩形</param>
            /// <param name="radius">圆角大小(像素)</param>
            /// <returns></returns>
            public static GraphicsPath GetRoundRectangle(Rectangle rect, int radius) {
                GraphicsPath path = new GraphicsPath();
                Point lefttop = new Point(rect.X, rect.Y);
                Point righttop = new Point(rect.X + rect.Width, rect.Y);
                Point rightbottom = new Point(rect.X + rect.Width, rect.Y + rect.Height);
                Point leftbottom = new Point(rect.X, rect.Y + rect.Height);
                path.AddArc(lefttop.X, lefttop.Y, radius * 2, radius * 2, 180, 90);
                path.AddLine(lefttop.X + radius, lefttop.Y, righttop.X - radius, righttop.Y);
                path.AddArc(righttop.X - radius * 2, righttop.Y, radius * 2, radius * 2, 270, 90);
                path.AddLine(righttop.X, righttop.Y + radius, rightbottom.X, rightbottom.Y - radius);
                path.AddArc(rightbottom.X - radius * 2, rightbottom.Y - radius * 2, radius * 2, radius * 2, 0, 90);
                path.AddLine(rightbottom.X - radius, rightbottom.Y, leftbottom.X + 5, leftbottom.Y);
                path.AddArc(leftbottom.X, leftbottom.Y - radius * 2, radius * 2, radius * 2, 90, 90);
                path.AddLine(lefttop.X, leftbottom.Y - radius, lefttop.X, lefttop.Y + radius);
                path.CloseFigure();
                return path;
            }
        }
    }


  • 相关阅读:
    反射实现Model修改前后的内容对比
    [C#] 将NLog输出到RichTextBox,并在运行时动态修改日志级别过滤
    C#远程调用技术WebService葵花宝典
    C# winform实现右下角弹出窗口结果的方法
    C# / VB.NET合并PDF指定页
    C# Word转PDF/HTML/XML/XPS/SVG/EMF/EPUB/TIFF
    C# 将PDF转为SVG的3种情况
    C# 如何将PDF转为多种图像文件格式(Png/Bmp/Emf/Tiff)
    C# 按指定范围拆分Excel工作表
    Powershell如何在Start-Job的Scriptblock里传参?
  • 原文地址:https://www.cnblogs.com/shaozhuyong/p/5130528.html
Copyright © 2011-2022 走看看