zoukankan      html  css  js  c++  java
  • 单据状态图

    介绍单据状态图片显示,能够很美观的看到单据的状态,源码不是我写的 是网上下载的  只是时间久了 忘记哪位博主大神写的了  只是略作修改,系统能够正常使用。

    这里粘贴系统用的代码,希望能帮助各位。

      1 namespace RwxFramework.Library
      2 {
      3     /// <summary>
      4     /// 提供透明和旋转功能的基础控件
      5     /// </summary>
      6     public partial class CYBaseControl : Control
      7     {
      8         private float _iBorderThickness = 1f;
      9         private float _iOpacity = 1f;
     10         private Brush _brushBg = null;
     11         private Pen _penFg = null;
     12 
     13         public CYBaseControl()
     14         {
     15             this.SetStyle(ControlStyles.SupportsTransparentBackColor |
     16                 ControlStyles.Opaque, true);
     17             this.BackColor = Color.Transparent;
     18             BackgroundBrush = Brushes.Transparent;
     19             ForegroundPen = Pens.Black;
     20             this.TabStop = false;
     21         }
     22 
     23         #region Propertys
     24         #region HideParent
     25         [Browsable(false)]
     26         [EditorBrowsable(EditorBrowsableState.Never)]
     27         public override string Text
     28         {
     29             get { return base.Text; }
     30             set { base.Text = value; }
     31         }
     32 
     33         [Browsable(false)]
     34         [EditorBrowsable(EditorBrowsableState.Never)]
     35         public override Image BackgroundImage
     36         {
     37             get { return base.BackgroundImage; }
     38             set { base.BackgroundImage = value; }
     39         }
     40 
     41         [Browsable(false)]
     42         [EditorBrowsable(EditorBrowsableState.Never)]
     43         public override ImageLayout BackgroundImageLayout
     44         {
     45             get
     46             {
     47                 return base.BackgroundImageLayout;
     48             }
     49             set
     50             {
     51                 base.BackgroundImageLayout = value;
     52             }
     53         }
     54         #endregion
     55 
     56         public override Color BackColor
     57         {
     58             get
     59             {
     60                 return base.BackColor;
     61             }
     62             set
     63             {
     64                 base.BackColor = value;
     65                 ResetBgBrush();
     66             }
     67         }
     68 
     69         //[EditorAttribute(typeof(BrushTypeEditor), typeof(System.Drawing.Design.UITypeEditor))]  
     70         //public double Background
     71         //{
     72         //    get;
     73         //    set;
     74         //}
     75 
     76         public override Color ForeColor
     77         {
     78             get
     79             {
     80                 return base.ForeColor;
     81             }
     82             set
     83             {
     84                 base.ForeColor = value;
     85                 ResetFgPen();
     86             }
     87         }
     88 
     89         public float BorderThickness
     90         {
     91             get { return _iBorderThickness; }
     92             set
     93             {
     94                 if (value < 0)
     95                 {
     96                     throw new Exception("Out off range");
     97                 }
     98                 _iBorderThickness = value;
     99                 ResetFgPen();
    100                 ResetDrawRect();
    101             }
    102         }
    103 
    104         public virtual float RotateAngle
    105         {
    106             get;
    107             set;
    108         }
    109 
    110 
    111         public float Opacity
    112         {
    113             get { return _iOpacity; }
    114             set
    115             {
    116                 if (value > 1 || value < 0)
    117                 {
    118                     throw new Exception("Out of range,the Value be in [0,1]");
    119                 }
    120                 else
    121                 {
    122                     _iOpacity = value;
    123                     ResetBrushes();
    124                 }
    125             }
    126         }
    127 
    128         protected override CreateParams CreateParams
    129         {
    130             get
    131             {
    132                 CreateParams cp = base.CreateParams;
    133                 cp.ExStyle = 0x20;
    134                 return cp;
    135             }
    136         }
    137 
    138         protected virtual Brush BackgroundBrush
    139         {
    140             get { return _brushBg; }
    141             set { _brushBg = value; }
    142         }
    143 
    144         protected virtual Pen ForegroundPen
    145         {
    146             get { return _penFg; }
    147             set { _penFg = value; }
    148         }
    149 
    150         protected virtual RectangleF DrawRect
    151         {
    152             get;
    153             set;
    154         }
    155         #endregion
    156 
    157         #region Methods
    158         protected override void OnPaint(PaintEventArgs e)
    159         {
    160             base.OnPaint(e);
    161             e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
    162         }
    163 
    164         protected override void OnSizeChanged(EventArgs e)
    165         {
    166             base.OnSizeChanged(e);
    167             ResetDrawRect();
    168         }
    169         protected override void OnPaddingChanged(EventArgs e)
    170         {
    171             base.OnPaddingChanged(e);
    172             ResetDrawRect();
    173         }
    174 
    175         protected void ResetBrushes()
    176         {
    177             ResetBgBrush();
    178             ResetFgPen();
    179         }
    180 
    181         protected void ResetBgBrush()
    182         {
    183             BackgroundBrush = new SolidBrush(GetOpacityColor(BackColor, Opacity));
    184         }
    185 
    186         protected void ResetFgPen()
    187         {
    188             ForegroundPen = new Pen(GetOpacityColor(ForeColor, Opacity), BorderThickness);
    189         }
    190 
    191         protected Color GetOpacityColor(Color baseColor, float op)
    192         {
    193             return Color.FromArgb(Convert.ToInt32(op * baseColor.A), baseColor);
    194         }
    195 
    196         private void ResetDrawRect()
    197         {
    198             float dbwidth = 2 * BorderThickness;
    199             float halfwidth = BorderThickness / 2;
    200             int paddingWhith = Padding.Left + Padding.Right;
    201             int paddingHeight = Padding.Top + Padding.Bottom;
    202             if (dbwidth > Width - paddingWhith || dbwidth > Height - paddingHeight)
    203             {
    204                 DrawRect = this.Bounds;
    205             }
    206             else
    207             {
    208                 DrawRect = new RectangleF(Padding.Left + halfwidth,
    209                     Padding.Top + halfwidth,
    210                     Width - BorderThickness - paddingWhith,
    211                     Height - BorderThickness - paddingHeight);
    212             }
    213         }
    214         #endregion
    215     }
    216 }
    View Code
      1 namespace RwxFramework.Library
      2 {
      3     [ToolboxBitmap(typeof(OpacityImage), "Resources.PictureObject.png")]
      4     public partial class OpacityImage : CYBaseControl
      5     {
      6         private Image _image = RwxFramework.Library.Properties.Resources.no;
      7         private ImageFillMode _fillMode = ImageFillMode.Zoom;
      8 
      9         public Image Image
     10         {
     11             get { return _image; }
     12             set
     13             {
     14                 if (value == null)
     15                 {
     16                     _image = RwxFramework.Library.Properties.Resources.no;
     17                 }
     18                 else
     19                 {
     20                     _image = value;
     21                 }
     22                 ResetPaintImage();
     23             }
     24         }
     25         public bool _isaudit = false;
     26         public bool IsAudit
     27         {
     28             get { return _isaudit; }
     29             set
     30             {
     31                 _isaudit = value;
     32                 ShowImage(value);
     33             }
     34         }
     35 
     36 
     37         public ImageFillMode FillMode
     38         {
     39             get { return _fillMode; }
     40             set
     41             {
     42                 _fillMode = value;
     43                 ResetPaintImage();
     44             }
     45         }
     46 
     47         protected override RectangleF DrawRect
     48         {
     49             get
     50             {
     51                 return base.DrawRect;
     52             }
     53             set
     54             {
     55                 base.DrawRect = value;
     56                 ResetPaintImage();
     57             }
     58         }
     59 
     60         protected Image PaintImage
     61         {
     62             get;
     63             private set;
     64         }
     65         protected override void OnPaint(PaintEventArgs e)
     66         {
     67             base.OnPaint(e);
     68             if (PaintImage != null)
     69             {
     70                 e.Graphics.DrawImage(PaintImage, Point.Empty);
     71             }
     72         }
     73         private void ResetPaintImage()
     74         {
     75             if (PaintImage != null)
     76             {
     77                 PaintImage.Dispose();
     78                 PaintImage = null;
     79             }
     80             if (_image != null && _image.Width > 0 && _image.Height > 0 && DrawRect.Width > 0 && DrawRect.Height > 0)
     81             {
     82                 PaintImage = new Bitmap((int)DrawRect.Width, (int)DrawRect.Height);
     83                 using (Graphics g = Graphics.FromImage(PaintImage))
     84                 {
     85                     g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
     86                     g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
     87 
     88                     System.Drawing.Imaging.ImageAttributes ima = new System.Drawing.Imaging.ImageAttributes();
     89                     ColorMatrix cm = new ColorMatrix();
     90                     cm.Matrix33 = Opacity;
     91                     ima.SetColorMatrix(cm);
     92                     Point pt = Point.Empty;
     93                     switch (FillMode)
     94                     {
     95                         case ImageFillMode.Center:
     96                             pt = new Point((int)(DrawRect.Width - _image.Width) / 2, (int)(DrawRect.Height - _image.Height) / 2);
     97                             g.DrawImage(_image, new Rectangle(pt, _image.Size), 0, 0, _image.Width, _image.Height, GraphicsUnit.Pixel, ima);
     98                             break;
     99                         case ImageFillMode.Strength:
    100                             g.DrawImage(_image, Rectangle.Round(DrawRect), 0, 0, _image.Width, _image.Height, GraphicsUnit.Pixel, ima);
    101                             break;
    102                         case ImageFillMode.Title:
    103                             ima.SetWrapMode(System.Drawing.Drawing2D.WrapMode.Tile);
    104                             TextureBrush brush = new TextureBrush(_image, new Rectangle(0, 0, _image.Width, _image.Height), ima);
    105                             g.FillRectangle(brush, DrawRect);
    106                             break;
    107                         case ImageFillMode.Zoom:
    108                             float IntWidth; //新的图片宽
    109                             float IntHeight; //新的图片高   
    110 
    111                             float TargetWidth = DrawRect.Width;
    112                             float TargetHeight = DrawRect.Height;
    113 
    114                             if (_image.Width > TargetWidth && _image.Height <= TargetHeight)//宽度比目的图片宽度大,长度比目的图片长度小
    115                             {
    116                                 IntWidth = TargetWidth;
    117                                 IntHeight = (IntWidth * _image.Height) / _image.Width;
    118                             }
    119                             else if (_image.Width <= TargetWidth && _image.Height > TargetHeight)//宽度比目的图片宽度小,长度比目的图片长度大
    120                             {
    121                                 IntHeight = TargetHeight;
    122                                 IntWidth = (IntHeight * _image.Width) / _image.Height;
    123                             }
    124                             else if (_image.Width <= TargetWidth && _image.Height <= TargetHeight) //长宽比目的图片长宽都小
    125                             {
    126                                 IntHeight = _image.Width;
    127                                 IntWidth = _image.Height;
    128                             }
    129                             else//长宽比目的图片的长宽都大
    130                             {
    131                                 IntWidth = TargetWidth;
    132                                 IntHeight = (IntWidth * _image.Height) / _image.Width;
    133                                 if (IntHeight > TargetHeight)//重新计算
    134                                 {
    135                                     IntHeight = TargetHeight;
    136                                     IntWidth = (IntHeight * _image.Width) / _image.Height;
    137                                 }
    138                             }
    139                             g.DrawImage(_image,
    140                                 (TargetWidth - IntWidth) / 2,
    141                                 (TargetHeight - IntHeight) / 2,
    142                                 IntWidth,
    143                                 IntHeight);
    144                             break;
    145                     }                   
    146                     g.Dispose();
    147                 }
    148             }
    149             else
    150             {
    151                 PaintImage = null;
    152             }
    153         }
    154         public void RefreshImage()
    155         {
    156             int width = base.Width;
    157             base.Width = width + 1;
    158             width = base.Width;
    159             base.Width = width - 1;
    160         }
    161 
    162         public void ShowImage(bool audit)
    163         {
    164             if (audit)
    165             {
    166                 this.Image = RwxFramework.Library.Properties.Resources.Audit;
    167             }
    168             else
    169             {
    170                 this.Image = RwxFramework.Library.Properties.Resources.no;
    171             }
    172             this.RefreshImage();
    173         }
    174 
    175     }
    176 
    177     public enum ImageFillMode
    178     {
    179         Zoom,
    180         Title,
    181         Strength,
    182         Center
    183     }
    184 }
    View Code
  • 相关阅读:
    Django基础篇
    知识梳理
    其他类题目
    CDN原理
    OpenStack
    云计算三种服务模式SaaS、PaaS和IaaS
    高并发架构
    Andrid Studio Gradle sync failed: A problem occurred configuring project ':app' 解决方法
    Android Studio 创建项目后“Cannot resolve symbol” 解决办法
    阅读之推荐系统
  • 原文地址:https://www.cnblogs.com/bjrwx/p/9438294.html
Copyright © 2011-2022 走看看