C#中使用GDI+绘制一把漂亮的直尺(带透明度

这篇博客展示了如何使用C#和GDI+来创建一款带有透明度和刻度的直尺,包括横向和纵向两种形式。代码示例详细说明了绘制过程,同时提供了设置透明度和调整尺子方向的功能。
摘要由CSDN通过智能技术生成

这是三年前研究C#与GDI+时的作品,它使用C#与GDI+绘制一把有透明度、带刻度 (以像素为单位)的直尺。

最终效果:

横向直尺:(注:设置了80%不透明度)横向透明直尺效果

竖向直尺:(注:设置了100%不透明度,即完全不透明)
竖向透明直尺效果

C#代码:
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Resources;
using System.Windows.Forms;

namespace BrawDraw.Com.Utility.Ruler
{
 public class BeautifulRuler : Form
 {
  private ToolTip   _toolTip = new ToolTip();
  private Point   _offset;
  private Rectangle  _mouseDownRect;
  private int    _resizeBorderWidth = 5;
  private Point   _mouseDownPoint;
  private ResizeRegion _resizeRegion = ResizeRegion.None;
  private ContextMenu  _menu = new ContextMenu();
  private MenuItem  _verticalMenuItem;
  private MenuItem  _toolTipMenuItem;
  private static bool showWidth = true;
  private static bool showWebSite = true;
  private const string SHORT_WEBSITE_STRING="BrawDraw.Com";
  private const string FULL_WEBSITE_STRING="http://www.BrawDraw.Com";
  private string _webSiteString;
  private Color _webSiteStringColor;

        #region ResizeRegion enum
        private enum ResizeRegion
        {
            None, N, NE, E, SE, S, SW, W, NW
        }
        #endregion

        public BeautifulRuler()
  {
            InitializeComponent();

            ResourceManager resources = new ResourceManager(typeof(BeautifulRuler));
   Icon = ((Icon)(resources.GetObject("$this.Icon")));

   SetUpMenu();

   Text = "Ruler";
   BackColor = Color.White;
   ClientSize = new Size(400, 75);
   FormBorderStyle = FormBorderStyle.None;
   Opacity = 0.75;
   ContextMenu = _menu;
   Font = new Font("Tahoma", 10);

   _webSiteStringColor = Color.Blue;
   
   SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
   this.TopMost = true;
  }

        public string WebSiteString
        {
            get
            {
                if (_webSiteString == null)
                {
                    _webSiteString = FULL_WEBSITE_STRING;
                }
                return _webSiteString;
            }
            set
            {
                value = _webSiteString;
            }
        }

        public Color WebSiteStringColor
        {
            get
            {
                if (_webSiteStringColor == Color.Empty)
                {
                    _webSiteStringColor = Color.Black;
                }
                return _webSiteStringColor;
            }
            set
            {
                value = _web

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值