如果MainWindow
太靠近屏幕邊緣,相對定位可以去關閉屏幕打開New Window
新窗口。防止從去離屏幕
我想有它檢測到它的關閉屏幕並自己重新定位接近邊緣,甚至重疊MainWindow
。頂部,底部,左側和右側。
示例項目來源
例 https://www.dropbox.com/s/3r2guvssiakcz6f/WindowReposition.zip?dl=0
private Boolean IsWindowOpened = false;
// Info Button
//
private void buttonInfo_Click(object sender, RoutedEventArgs e)
{
MainWindow mainwindow = this;
// Start Info Window
InfoWindow info = new InfoWindow(mainwindow);
// Only Allow 1 Window Instance
if (IsWindowOpened) return;
info.ContentRendered += delegate { IsWindowOpened = true; };
info.Closed += delegate { IsWindowOpened = false; };
// Position Relative to MainWindow
info.Left = mainwindow.Left - 270;
info.Top = mainwindow.Top + 0;
// Open Info Window
info.Show();
}
1280x720的屏幕
MainWindow
中心屏幕
InfoWindow
-270px左,0像素頂級
關閉屏幕
MainWindow
頂部屏幕
InfoWindow
-270px左的左派,0像素頂級
重新定位在屏幕
MainWindow
頂部屏幕
InfoWindow
-160px左的左派,0像素頂級
這是行之有效的。我會進一步測試並回復你。 –
它適用於重新定位在屏幕的左側,但不是右側。如果我從'InfoWindow'開始定位到'MainWindow'的右側。 'info.Left = Math.Max(mainwindow.Left + mainwindow.Width,0);' –
現在更新我的答案來解釋左邊與右邊以及多個屏幕。 –