[英]Event for exiting the screen monitor (with WPF)
我正在編寫一個使用WPF窗口的程序。 我使用下一個代碼來最大化窗口:
this.WindowStyle = WindowStyle.None;
this.WindowState = WindowState.Maximized;
this.Topmost = true;
當窗口最大化時,我想知道鼠標是否退出顯示器的邊框,這樣我就可以打開一個新的窗口,提供一些新的控件(就像在BsPlayer中一樣:當鼠標退出屏幕時,會打開一個窗口,讓您可以訪問按鈕,如播放,暫停,停止等)。 我試圖使用this.MouseLeave,但是當窗口最大化時似乎沒有觸發任何事件。 經過一些測試后,我發現問題可能是當我的窗口最大化時,它實際上大於顯示器的分辨率。 在一個基本示例中:如果您的顯示器的分辨率為1280 x 1024,則窗口的尺寸(根據this.Width和this.Height)為1294 x 1038.那么我該怎么辦? 我應該如何處理這個問題?
您可以處理Window的MouseMove
事件並檢查鼠標的位置。
private void Window_MouseMove(object sender, MouseEventArgs e)
{
//PrimaryScreenWidth - 1 to account for the cursor itself
if (e.GetPosition(this).X >= SystemParameters.PrimaryScreenWidth - 1 || e.GetPosition(this).X <= 1)
MessageBox.Show("Edge hit");
}
如果您正在運行多個監視器,您還可以處理MouseLeave
事件以處理鼠標移動到第二個監視器的情況。
private void Window_MouseLeave(object sender, MouseEventArgs e)
{
MessageBox.Show("Edge hit");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.