2010-01-04 110 views
0

我正在开发一种Outlook日历应用程序,我需要从鼠标调整约会的大小。 我第一次尝试用拇指不能正常工作,所以我尝试了另一种方式。wpf:捕捉鼠标不起作用

我所做的是:

1)在appointmennt面板的钮我添加了一个矩形弄清楚调整大小区(拇指)。预约面板放在网格面板上。 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()是为了解决这类问题而提出的,但事实上并非如此。

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

回答

1

你应该使用拇指,但随着鼠标捕获玩,覆盖protected override void OnLostMouseCapture(MouseEventArgs e)方法,那么你就会知道,如果你已经失去了拍摄。