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();
|
|
}
|
|
}
|
|
}
|