public FormShadowDecorator(Form window, bool enable = true) { _window = window; _parentWindowHwnd = window.Handle; _topFormShadow = new FormShadowElement(FormShadowDockPositon.Top, _parentWindowHwnd, this); _leftFormShadow = new FormShadowElement(FormShadowDockPositon.Left, _parentWindowHwnd, this); _bottomFormShadow = new FormShadowElement(FormShadowDockPositon.Bottom, _parentWindowHwnd, this); _rightFormShadow = new FormShadowElement(FormShadowDockPositon.Right, _parentWindowHwnd, this); _shadows.Add(_topFormShadow); _shadows.Add(_leftFormShadow); _shadows.Add(_bottomFormShadow); _shadows.Add(_rightFormShadow); AssignHandle(_parentWindowHwnd); User32.ShowWindow(_topFormShadow.Handle, ShowWindowStyles.SW_SHOWNOACTIVATE); User32.ShowWindow(_leftFormShadow.Handle, ShowWindowStyles.SW_SHOWNOACTIVATE); User32.ShowWindow(_bottomFormShadow.Handle, ShowWindowStyles.SW_SHOWNOACTIVATE); User32.ShowWindow(_rightFormShadow.Handle, ShowWindowStyles.SW_SHOWNOACTIVATE); _isEnabled = false; AlignSideShadowToTopMost(); Enable(true); }
private void CloseShadows() { foreach (var sideShadow in _shadows) { sideShadow.Close(); } _shadows.Clear(); _topFormShadow = null; _bottomFormShadow = null; _leftFormShadow = null; _rightFormShadow = null; }