protected virtual void Dispose(bool disposing)
            {
                if (disposed)
                {
                    return;
                }

                // Free managed objects here
                if (disposing)
                {
                    windowBitmap.Dispose();
                }
                // Free unmanaged objects here.
                NativeMethods.ReleaseDC(IntPtr.Zero, hdcScreen);
                NativeMethods.DeleteDC(hdcWindow);
                NativeMethods.DeleteDC(hdcBackground);
                disposed = true;
            }
 protected override void DisposeManagedResources() => _windowBitmap.Dispose();