我正在开发一种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()建议解决这类问题,但事实上并非如此。
有人知道我的代码有什么问题吗?
答案 0 :(得分:1)
您应该使用实际的Thumb
控件。查看MSDN以获取帮助:
答案 1 :(得分:1)
你应该使用拇指,但要使用鼠标捕捉,覆盖protected override void OnLostMouseCapture(MouseEventArgs e)
方法,然后你会知道你是否丢失了捕获。