2010-01-04 88 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)方法,那麼你就會知道,如果你已經失去了拍攝。