public static DisposableHandle GetDisposableHdc(this Graphics graphics) { var handle = new DisposableHandle(graphics.GetHdc()); handle.Disposed += (sender, e) => graphics.ReleaseHdc(); return(handle); }
public static DisposableHandle SelectObject(this DisposableHandle graphicsHandle, IntPtr gdiObject) { var hdc = graphicsHandle; var oldObject = SelectObject((IntPtr)hdc, gdiObject); var disposableHandle = new DisposableHandle(oldObject); disposableHandle.Disposed += (sender, e) => { SelectObject(hdc, oldObject); DeleteObject(gdiObject); }; return(disposableHandle); }
public static DisposableHandle SelectObject(this Graphics graphics, IntPtr gdiObject) { var hdc = graphics.GetDisposableHdc(); var oldObject = SelectObject(hdc, gdiObject); var disposableHandle = new DisposableHandle(oldObject); disposableHandle.Disposed += (sender, e) => { SelectObject(hdc, oldObject); DeleteObject(gdiObject); hdc.Dispose(); }; return(disposableHandle); }
public static DisposableHandle SelectObject(this DisposableHandle graphicsHandle, Font font) { var hFont = font.ToHfont(); return(graphicsHandle.SelectObject(hFont)); }