<PackageReference Include="System.Drawing.Common" Version="10.0.0-preview.6.25358.103" />

SetBkModeScope

Helper to scope selecting a given background mix mode into a HDC. Restores the original mix mode into the HDC when disposed.
using System.Runtime.CompilerServices; namespace Windows.Win32.Graphics.Gdi { [CompilerFeatureRequired("RefStructs")] internal readonly ref struct SetBkModeScope { private readonly BACKGROUND_MODE _previousMode; private readonly HDC _hdc; public SetBkModeScope(HDC hdc, BACKGROUND_MODE bkmode) { _previousMode = (BACKGROUND_MODE)PInvokeCore.SetBkMode(hdc, bkmode); _hdc = ((_previousMode == bkmode) ? default(HDC) : hdc); } public void Dispose() { if (!_hdc.IsNull) PInvokeCore.SetBkMode(_hdc, _previousMode); } } }