我决定通过在Visual Studio 2010中编写音乐播放器来自学C#。我选择了WPF,因为从我听到的内容来看,它听起来像是一个很好的基础。
我想用我的窗口编程,如果窗口到达屏幕边缘(在10px左右),它将捕捉到屏幕边缘。什么是最好的方法呢?
答案 0 :(得分:3)
您需要解决一些问题。首先收到边缘接近屏幕的通知:
Window.SizeChanged
事件。然后,如果窗口边缘靠近屏幕边缘,则有一个TODO列表可以解决。
是否有多个监视器以及窗口是否仅包含在监视器上。 This answer将帮助您获取监视器信息。
处理捕捉边缘的动作。这个需要一些矩形算术杂技。然后,您可以设置Window.Top
,Window.Left
,Window.Height
或Window.Width
。
每个边缘都需要条件代码,但它看起来像这样:
void SnapWindow(Window window, Size monitorSize) {
if (window.Left < c_SnapThreshold && window.Left > 0)
window.Left = 0;
if (window.Left + window.Width > (monitorSize.Width - SnapThreshold) && window.Left + window.Width < monitorSize.Width)
window.Width = monitorSize.Width - window.Left; //docks the right edge
//..etc
}
}