/// <summary> /// Called when the user clicks on the screen /// </summary> /// <param name="sender">Sening object</param> /// <param name="e">Event arguments</param> private void OnMouseClickOnScreen(object sender, System.Windows.Forms.MouseEventArgs e) { var formLocation = new System.Drawing.Point((int)screenResolution.ConvertXDpi(e.Location.X), (int)screenResolution.ConvertYDpi(e.Location.Y)); // Only interessting for Touch Friendly) if (PinStyle != PinStyle.TouchFriendly && PinStyle != PinStyle.AlwaysOff && PinStyle != PinStyle.Manual) { return; } // if the screen is not hidden, than everything is ok if (Hidden || IsAnimating) { return; } // Check if the user clicks outside the current window bool mustHide = !(new Rectangle((int)Left, (int)Top, (int)Width, (int)Height).Contains(formLocation)); if (!mustHide) { return; } // Check if the user pressed the magic key Storyboard sliding; latencyTimer.Stop(); if (IsMagicKeyPressed && PinStyle == PinStyle.AlwaysOn) { return; } // Stop the current animation and hide the window if ((sliding = slideIn) != null) { sliding.Stop(); } BeginAnimation(slideOut); }
private void PostionLeft() { Screen activeScreen = ActiveScreen; Screen taskBarScreen = Screen.FromHandle(TaskBar.GetHandle());; Size taskBarSize = TaskBar.GetTaskBarSize(); var left = activeScreen.Bounds.Left; var top = activeScreen.Bounds.Top; var height = activeScreen.Bounds.Height; var taskbarHeight = (activeScreen.DeviceEquals(taskBarScreen) ? taskBarSize.Height : 0); var taskbarWidth = (activeScreen.DeviceEquals(taskBarScreen) ? taskBarSize.Width : 0); switch (TaskBar.GetTaskBarEdge()) { case TaskBar.TaskBarEdge.Left: form.Left = screenResolution.ConvertXDpi(left + taskbarWidth); form.Top = screenResolution.ConvertYDpi(top); form.Height = screenResolution.ConvertYDpi(height); break; case TaskBar.TaskBarEdge.Top: form.Left = screenResolution.ConvertXDpi(left); form.Top = screenResolution.ConvertYDpi(top + taskbarHeight); form.Height = screenResolution.ConvertYDpi(height - taskbarHeight); break; case TaskBar.TaskBarEdge.Right: form.Left = screenResolution.ConvertXDpi(left); form.Top = screenResolution.ConvertYDpi(top); form.Height = screenResolution.ConvertYDpi(height); break; case TaskBar.TaskBarEdge.Bottom: form.Left = screenResolution.ConvertXDpi(left); form.Top = screenResolution.ConvertYDpi(top); form.Height = screenResolution.ConvertYDpi(height - taskbarHeight); break; default: throw new ArgumentOutOfRangeException(); } }