0

我正在开发一种 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() 是为了解决这类问题而提出的,但实际上并非如此。

有人知道我的代码有什么问题吗?

4

2 回答 2

1

您应该使用实际Thumb控件。查看 MSDN 寻求帮助:

如何:使用拇指启用拖动

于 2010-01-04T19:15:45.183 回答
1

您应该使用拇指,但是要玩鼠标捕获,请覆盖该protected override void OnLostMouseCapture(MouseEventArgs e)方法,然后您将知道是否丢失了捕获。

于 2010-01-05T02:28:14.980 回答