⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 designervisualobject.cs

📁 这个是自己制作的工作流设计器,可以可视化的拖拉
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

namespace WorkflowDesigner.Designer
{
    /// <summary>
    /// 可视化对象基类
    /// </summary>
    public class DesignerVisualObject
    {
        #region 字段
        /// <summary>
        /// 是否被选中
        /// </summary>
        private bool _isSelected = false;

        /// <summary>
        /// 所占表格的大小
        /// </summary>
        protected const int GridSize = 10;

        #endregion

        #region 属性
        /// <summary>
        /// 是否被选中
        /// </summary>
        public bool IsSelected
        {
            get
            {
                return _isSelected;
            }
            set
            {
                _isSelected = value;
            }
        }
        #endregion

        #region 构造函数

        #endregion

        #region 操作

        #region 私有
        #endregion

        #region 保护
        /// <summary>
        /// 对齐到数字
        /// </summary>
        /// <param name="number">图形所在的位置的坐标</param>
        /// <param name="alignNumber">所占表格的大小</param>
        /// <returns>返回最新的位置坐标</returns>
        protected int AlignToNumber(int number, int alignNumber)
        {
            //通过四舍五路的方法对齐到最近的表格
            int newNum = number - (number % alignNumber);
            if ((number - newNum) > (alignNumber / 2))
            {
                return newNum + alignNumber;
            }
            else
            {
                return newNum;
            }
        }
        #endregion

        #region 公用

        /// <summary>
        /// 判断鼠标点击出是否有可视化对象
        /// </summary>
        /// <param name="x">鼠标所在位置的x轴坐标</param>
        /// <param name="y">鼠标所在位置的y轴坐标</param>
        /// <returns>点击出的可视化对象</returns>
        public virtual HitTestState HitTest(int x, int y)
        {
            return HitTestState.None;
        }

        /// <summary>
        /// 对齐到画布上的表格
        /// </summary>
        public virtual void AlignToGrid()
        {
            
        }

        /// <summary>
        /// 框选
        /// </summary>
        /// <param name="rect">选中的矩形范围</param>
        public virtual void RangeSelect(Rectangle rect)
        {
            
        }

        /// <summary>
        /// 绘制
        /// </summary>
        /// <param name="g">绘图图面</param>
        public virtual void Draw(Graphics g)
        {
        }


        /// <summary>
        /// 移动
        /// </summary>
        /// <param name="offX">移动新位置的x轴坐标</param>
        /// <param name="offY">移动新位置的y轴坐标</param>
        public virtual void Move(int offX, int offY)
        {
        }

        /// <summary>
        /// 打开属性对话框
        /// </summary>
        public virtual void OpenPropertyDialog()
        {
        }

        /// <summary>
        /// 图形矩阵
        /// </summary>
        /// <returns>返回一个图形矩阵</returns>
        public virtual Rectangle GetRange()
        {
            return new Rectangle(0, 0, 0, 0);
        }
        #endregion
        #endregion



        
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -