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

HdcExtensions

static class HdcExtensions
using System.Runtime.CompilerServices; using Windows.Win32.Foundation; using Windows.Win32.Graphics.GdiPlus; namespace Windows.Win32.Graphics.Gdi { internal static class HdcExtensions { private static HPALETTE s_halftonePalette; public static SelectPaletteScope HalftonePalette(this GetDcScope hdc, bool forceBackground, bool realizePalette) { return hdc.HDC.HalftonePalette(forceBackground, realizePalette); } [NullableContext(1)] public static SelectPaletteScope HalftonePalette<[Nullable(0)] T>(this T hdc, bool forceBackground, bool realizePalette) where T : IHandle<HDC> { if (PInvokeCore.GetDeviceCaps(((IHandle<HDC>)hdc).Handle, GET_DEVICE_CAPS_INDEX.BITSPIXEL) > 8) return default(SelectPaletteScope); if (s_halftonePalette.IsNull) { GdiPlusInitialization.EnsureInitialized(); s_halftonePalette = PInvokeGdiPlus.GdipCreateHalftonePalette(); } return new SelectPaletteScope(((IHandle<HDC>)hdc).Handle, s_halftonePalette, forceBackground, realizePalette); } } }