• 大小: 78KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: C#
  • 标签: 平移拉伸  

资源简介

c#绘图源码,可以按住鼠标拖动图形及通过八个方向拉伸图形

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DrawRect
{
    public enum DirectionalType
    {
        UP_LEFT
        UP
        UP_RIGHT
        RIGHT
        DOWN_RIGHT
        DOWN
        DOWN_LEFT
        LEFT
        NONE
    }

    public partial class Canvas : Panel
    {
        public Canvas()
        {
            InitializeComponent();

            DoubleBuffered = true;

            this.Setstyle(Controlstyles.AllPaintingInWmPaint | Controlstyles.OptimizedDoubleBuffer | Controlstyles.UserPaint true);

            this.m_Rect = new Rectangle(8 8 this.Width-16 this.Height);
        }

        bool isMove = false;

        Rectangle m_Rect = Rectangle.Empty;

        Point m_LastPoint = Point.Empty;

        DirectionalType m_StretchingType = DirectionalType.NONE;

        Hashtable m_MapStretchingTypeRect = new Hashtable();

        void CreateRects()
        {
            m_MapStretchingTypeRect.Clear();

            m_MapStretchingTypeRect[DirectionalType.UP] = new Rectangle(this.m_Rect.Left + this.m_Rect.Width / 2 - 3 this.m_Rect.Top - 3 6 6);

            m_MapStretchingTypeRect[DirectionalType.RIGHT] = new Rectangle(this.m_Rect.Right - 3 this.m_Rect.Top + this.m_Rect.Height / 2 - 3 6 6);

            m_MapStretchingTypeRect[DirectionalType.DOWN] = new Rectangle(this.m_Rect.Left + this.m_Rect.Width / 2 - 3 this.m_Rect.Bottom - 3 6 6);

            m_MapStretchingTypeRect[DirectionalType.LEFT] = new Rectangle(this.m_Rect.Left - 3 this.m_Rect.Top + this.m_Rect.Height / 2 - 3 6 6);


            m_MapStretchingTypeRect[DirectionalType.UP_LEFT] = new Rectangle(this.m_Rect.Left - 3 this.m_Rect.Top - 3 6 6);

            m_MapStretchingTypeRect[DirectionalType.UP_RIGHT] = new Rectangle(this.m_Rect.Right - 3 this.m_Rect.Top - 3 6 6);

            m_MapStretchingTypeRect[DirectionalType.DOWN_RIGHT] = new Rectangle(this.m_Rect.Right - 3 this.m_Rect.Bottom - 3 6 6);

            m_MapStretchingTypeRect[DirectionalType.DOWN_LEFT] = new Rectangle(this.m_Rect.Left - 3 this.m_Rect.Bottom - 3 6 6);

        }

        void DrawRects(Graphics g)
        {
            foreach (DictionaryEntry item in m_MapStretchingTypeRect)
            {
                DirectionalType type = (DirectionalType)item.Key;

                Rectangle rect = (Rectangle)item.Value;

                if (m_StretchingType == type)
                {
                    g.FillRectangle(new SolidBrush(Color.FromArgb(255 Color.Green)) rect);

                    g.DrawRectangle(new Pen(Color.Green) rect);
                }
                else
                { 
                    g.DrawRectangle(new Pen(Color.Green) rect);
                }

   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-09-29 16:55  DrawRect\
     文件         187  2018-09-29 10:24  DrawRect\App.config
     目录           0  2018-09-29 16:54  DrawRect\bin\
     目录           0  2018-09-29 16:54  DrawRect\bin\Debug\
     文件       12800  2018-09-29 16:54  DrawRect\bin\Debug\DrawRect.exe
     文件         187  2018-09-29 10:24  DrawRect\bin\Debug\DrawRect.exe.config
     文件       28160  2018-09-29 16:54  DrawRect\bin\Debug\DrawRect.pdb
     文件       24224  2018-09-29 16:53  DrawRect\bin\Debug\DrawRect.vshost.exe
     文件        8885  2018-09-29 16:31  DrawRect\canvas.cs
     文件        1142  2018-09-29 16:19  DrawRect\Canvas.Designer.cs
     文件        5990  2018-09-29 16:17  DrawRect\Canvas.resx
     文件        4162  2018-09-29 16:19  DrawRect\DrawRect.csproj
     文件         984  2018-09-29 16:55  DrawRect\DrawRect.sln
     文件       14848  2018-09-29 13:28  DrawRect\DrawRect.suo
     文件       43520  2018-09-29 16:55  DrawRect\DrawRect.v12.suo
     文件         442  2018-09-29 16:21  DrawRect\FormMain.cs
     文件        2432  2018-09-29 16:21  DrawRect\FormMain.Designer.cs
     文件        5817  2018-09-29 16:21  DrawRect\FormMain.resx
     目录           0  2018-09-29 16:53  DrawRect\obj\
     目录           0  2018-09-29 16:54  DrawRect\obj\Debug\
     文件        6798  2018-09-29 16:31  DrawRect\obj\Debug\DesignTimeResolveAssemblyReferences.cache
     文件        7132  2018-09-29 16:53  DrawRect\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
     文件         180  2018-09-29 16:54  DrawRect\obj\Debug\DrawRect.Canvas.resources
     文件        2309  2018-09-29 16:54  DrawRect\obj\Debug\DrawRect.csproj.FileListAbsolute.txt
     文件        1039  2018-09-29 16:54  DrawRect\obj\Debug\DrawRect.csproj.GenerateResource.Cache
     文件       12800  2018-09-29 16:54  DrawRect\obj\Debug\DrawRect.exe
     文件         180  2018-09-29 16:54  DrawRect\obj\Debug\DrawRect.FormMain.resources
     文件       28160  2018-09-29 16:54  DrawRect\obj\Debug\DrawRect.pdb
     文件         180  2018-09-29 16:54  DrawRect\obj\Debug\DrawRect.Properties.Resources.resources
     文件           0  2018-09-29 10:24  DrawRect\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
     文件           0  2018-09-29 10:24  DrawRect\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
............此处省略17个文件信息

评论

共有 条评论

相关资源