我正在使用WPF进行C#项目。在我的MainWindow中,我刚刚摆脱了默认的窗口边框,而是用png文件创建了自己的边框。我只是将它设置为MainWindow的背景。 现在我做了一些有点难以让我的窗户移动的方法:
private void Window_MouseDown(object sender, MouseButtonEventArgs e) {
mouseDown = true;
lastX = (int)e.GetPosition(this).X;
lastY = (int)e.GetPosition(this).Y;
}
private void Window_MouseUp(object sender, MouseButtonEventArgs e) {
mouseDown = false;
}
private void Window_MouseMove(object sender, MouseEventArgs e) {
if (mouseDown) {
int xDiff = (int)e.GetPosition(this).X - lastX;
int yDiff = (int)e.GetPosition(this).Y - lastY;
this.Left += xDiff;
this.Top += yDiff;
}
}
private void Window_MouseLeave(object sender, MouseEventArgs e) {
mouseDown = false;
}
现在这不能正常工作。这样,用户可以在所有空白处移动窗口,甚至可以在Labels和TextBlocks上移动窗口。有没有办法给背景或边界这些事件?或者有更好的方法来整合边界吗?
提前致谢!
答案 0 :(得分:0)
正如你所说,手动完成时行为不稳定,但有一个解决办法。
这是框架中专门用于执行此操作的方法:
http://msdn.microsoft.com/en-us/library/system.windows.window.dragmove(v=vs.110).aspx