博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单据状态图
阅读量:6173 次
发布时间:2019-06-21

本文共 13578 字,大约阅读时间需要 45 分钟。

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

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

1 namespace RwxFramework.Library  2 {  3     ///   4     /// 提供透明和旋转功能的基础控件  5     ///   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 RotateAngle105         {106             get;107             set;108         }109 110 111         public float Opacity112         {113             get { return _iOpacity; }114             set115             {116                 if (value > 1 || value < 0)117                 {118                     throw new Exception("Out of range,the Value be in [0,1]");119                 }120                 else121                 {122                     _iOpacity = value;123                     ResetBrushes();124                 }125             }126         }127 128         protected override CreateParams CreateParams129         {130             get131             {132                 CreateParams cp = base.CreateParams;133                 cp.ExStyle = 0x20;134                 return cp;135             }136         }137 138         protected virtual Brush BackgroundBrush139         {140             get { return _brushBg; }141             set { _brushBg = value; }142         }143 144         protected virtual Pen ForegroundPen145         {146             get { return _penFg; }147             set { _penFg = value; }148         }149 150         protected virtual RectangleF DrawRect151         {152             get;153             set;154         }155         #endregion156 157         #region Methods158         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             else207             {208                 DrawRect = new RectangleF(Padding.Left + halfwidth,209                     Padding.Top + halfwidth,210                     Width - BorderThickness - paddingWhith,211                     Height - BorderThickness - paddingHeight);212             }213         }214         #endregion215     }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             else150             {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             else169             {170                 this.Image = RwxFramework.Library.Properties.Resources.no;171             }172             this.RefreshImage();173         }174 175     }176 177     public enum ImageFillMode178     {179         Zoom,180         Title,181         Strength,182         Center183     }184 }
View Code

转载于:https://www.cnblogs.com/bjrwx/p/9438294.html

你可能感兴趣的文章
DHCP服务器配置
查看>>
快速瓶颈识别
查看>>
运维工作总结201403
查看>>
我是菜鸟我加油……mysql主从同步
查看>>
[体系结构]设计模式(五)
查看>>
分布式文件系统
查看>>
其实很简单 微星为你详解Z77主板BIOS设置
查看>>
常见的shell变量
查看>>
This in Javascript
查看>>
在Ubuntu Kylin下安装JDK1.8
查看>>
Linux基本命令——组账户管理
查看>>
WebRTC 建立点对点连接(日志分析)
查看>>
822A - 协议栈、终端、shell、控制台
查看>>
我的友情链接
查看>>
AV_TIME_BASE
查看>>
The Switf programming Language 练习代码(5)
查看>>
JPA自定义sql返回 No Dialect mapping for JDBC type: 111
查看>>
Handler在主线程创建和在子线程创建的示例(18)
查看>>
java(十四)包装类型
查看>>
redis - java 客户端使用
查看>>