我正在开发一种 Outlook 日历应用程序,我需要在其中通过鼠标调整约会的大小。我第一次用拇指尝试没有正常工作,所以我尝试了另一种方法。
我所做的是:
1)在约会面板的底部,我添加了一个矩形来确定调整大小区域(拇指)。约会面板放在网格面板上。2)我拦截矩形上的向下事件并将事件发送到此代码:
private Point startPoint;
private void OnResizeElementMouseDown(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
this.MouseMove += new MouseEventHandler(ResizeEndElement_MouseMove);
this.MouseLeftButtonUp += new MouseButtonEventHandler(OnResizeElementMouseUp);
// some code to perform new height computation
Mouse.Capture(this);
}
这是拥有拇指的约会面板。
降低高度效果很好。但增加难度更大。如果我非常缓慢地移动鼠标,那没关系,如果我加快一点速度,它往往会遗漏约会面板,然后所有 MouseMove 事件都会丢失。
我以为 Mouse.Capture() 是为了解决这类问题而提出的,但实际上并非如此。
有人知道我的代码有什么问题吗?