Ejemplo n.º 1
0
        public static DisposableHandle GetDisposableHdc(this Graphics graphics)
        {
            var handle = new DisposableHandle(graphics.GetHdc());

            handle.Disposed += (sender, e) => graphics.ReleaseHdc();

            return(handle);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        public static DisposableHandle SelectObject(this DisposableHandle graphicsHandle, Font font)
        {
            var hFont = font.ToHfont();

            return(graphicsHandle.SelectObject(hFont));
        }