internal static void SetWindowCompositionAttribute(IntPtr hWindow, WINDOW_COMPOSITION_ATTRIBUTE wcAttribute, dynamic Value) { object _valueObject = (object)Value; switch (wcAttribute) { case WINDOW_COMPOSITION_ATTRIBUTE.WCA_USEDARKMODECOLORS: bool _result; bool.TryParse(_valueObject.ToString(), out _result); int _sizeOfValue = Marshal.SizeOf(_result); WINDOW_COMPOSITION_ATTRIBUTE_DATA WCA_DATA = new WINDOW_COMPOSITION_ATTRIBUTE_DATA { Attrib = (uint)WINDOW_COMPOSITION_ATTRIBUTE.WCA_USEDARKMODECOLORS, pvData = _result, pvDataSize = _sizeOfValue }; _SetWindowCompositionAttribute(hWindow, ref WCA_DATA); // RefreshImmersiveColorPolicyState(); break; } }
private static extern int _SetWindowCompositionAttribute(IntPtr hWindow, ref WINDOW_COMPOSITION_ATTRIBUTE_DATA WindowCompositionAttributeData);