public void InitializeShadows() { 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); 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); isInitialized = true; AssignHandle(parentWindowHWnd); AlignSideShadowToTopMost(); ActiveColor = activeColor; InactiveColor = inactiveColor; }
public FormShadowDecorator(Form window, bool enable = true) { parentWindow = 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 = enable; AlignSideShadowToTopMost(); ActiveColor = ActiveColor; InactiveColor = inactiveColor; }
//private void HandleSideMouseDown(object sender, FormShadowResizeArgs e) //{ // if (e.Mode == HitTest.HTNOWHERE || e.Mode == HitTest.HTCAPTION) // { // return; // } // User32.PostMessage(parentWindowHWnd, (uint)WindowsMessages.WM_SETFOCUS, IntPtr.Zero, IntPtr.Zero); // User32.SendMessage(parentWindowHWnd, (uint)WindowsMessages.WM_SYSCOMMAND, (IntPtr)e.Mode.ToInt(), IntPtr.Zero); //} private void CloseShadows() { foreach (var sideShadow in shadows) { sideShadow.Close(); } shadows.Clear(); topFormShadow = null; bottomFormShadow = null; leftFormShadow = null; rightFormShadow = null; }