Brush
Defines objects used to fill the interiors of graphical shapes such as rectangles, ellipses, pies, polygons, and paths.
using System.ComponentModel;
using System.Runtime.CompilerServices;
using Windows.Win32;
using Windows.Win32.Graphics.GdiPlus;
namespace System.Drawing
{
public abstract class Brush : MarshalByRefObject, ICloneable, IDisposable
{
private unsafe GpBrush* _nativeBrush;
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
internal unsafe GpBrush* NativeBrush {
get {
return _nativeBrush;
}
}
[NullableContext(1)]
public abstract object Clone();
protected internal unsafe void SetNativeBrush(IntPtr brush)
{
SetNativeBrushInternal((GpBrush*)(long)brush);
}
internal unsafe void SetNativeBrushInternal(GpBrush* brush)
{
_nativeBrush = brush;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected unsafe virtual void Dispose(bool disposing)
{
if (_nativeBrush != null) {
if (Gdip.Initialized)
PInvokeGdiPlus.GdipDeleteBrush(_nativeBrush);
_nativeBrush = null;
}
}
~Brush()
{
Dispose(false);
}
}
}