当鼠标被快速拖出窗口并按下左键 Mouse.DirectlyOver
时返回System.Windows.Controls.Grid
而不是null
.
Window.IsMouseOver
返回true
new Rect(window.RenderSize).Contains(Mouse.GetPosition(window))
返回true
要重现这一点,只需MainWindow()
在一个空白 wpf 项目中添加检查计时器,如下所示:
public MainWindow()
{
InitializeComponent();
var timer = new System.Threading.Timer(state =>
Dispatcher.BeginInvoke(new Action(
() => Debug.WriteLine("Mouse.DirectlyOver = {0}", Mouse.DirectlyOver)
)),null,0,10);
}
当我慢慢拖出来时,这些值是正确的。
有解决方法吗?确定鼠标退出应用程序的正确方法是什么?