50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Drawing;
 | |
| using System.Drawing.Drawing2D;
 | |
| //忽略没有注释警告
 | |
| #pragma warning disable 1591
 | |
| namespace MGdu.WinFormUI.MyGraphics
 | |
| {
 | |
|     public class NewSmoothModeGraphics : IDisposable
 | |
|     {
 | |
|         SmoothingMode _oldMode;
 | |
|         Graphics _graphics;
 | |
| 
 | |
|         public NewSmoothModeGraphics(Graphics g, SmoothingMode newMode)
 | |
|         {
 | |
|             _oldMode = g.SmoothingMode;
 | |
|             g.SmoothingMode = newMode;
 | |
|             _graphics = g;
 | |
|         }
 | |
| 
 | |
|         public void Dispose()
 | |
|         {
 | |
|             _graphics.SmoothingMode = _oldMode;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public class NewClipGraphics : IDisposable
 | |
|     {
 | |
|         Region _oldClip;
 | |
|         Region _newClip;
 | |
|         Graphics _graphics;
 | |
|         bool _shouldDispose;
 | |
| 
 | |
|         public NewClipGraphics(Graphics g, Region newClip, bool disposeNewClip)
 | |
|         {
 | |
|             _oldClip = g.Clip;            
 | |
|             _graphics = g;
 | |
|             _shouldDispose = disposeNewClip;
 | |
|             _newClip = newClip;
 | |
|             g.Clip = newClip;
 | |
|         }
 | |
| 
 | |
|         public void Dispose()
 | |
|         {
 | |
|             _graphics.Clip = _oldClip;
 | |
|             if (_shouldDispose)
 | |
|                 _newClip.Dispose();
 | |
|         }
 | |
|     }
 | |
| }
 |