0
我正在使用WPF創建一個簡單的繪圖應用程序。在canvas控件上使用mouse_up事件時,我遇到了一些奇怪的行爲。畫布鼠標事件奇怪行爲
我想要的效果是,當用戶單擊畫布然後拖動鼠標時,選定的形狀會增加。當用戶釋放鼠標按鈕時,形狀將保持原樣。我已經它工作正常用橢圓,因爲這樣的:
//Calculate width and height based on difference from start and current mouse positions
int width = currentXPosition < StartXPosition ? StartXPosition - currentXPosition : currentXPosition - StartXPosition;
int height = currentYPosition < StartYPosition ? StartYPosition - currentYPosition : currentYPosition - StartYPosition;
StandardEllipse ellipse = new StandardEllipse
{
Fill = new SolidColorBrush(Colors.Blue),
Stroke = new SolidColorBrush(Colors.Blue),
StrokeThickness = 2,
Width = width,
Height = height
};
//Calculate and set the starting positions of the ellipse for the drawing canvas
int left = currentXPosition < StartXPosition ? currentXPosition : StartXPosition;
int top = currentYPosition < StartYPosition ? currentYPosition : StartYPosition;
Canvas.SetLeft(ellipse, left);
Canvas.SetTop(ellipse, top);
return ellipse;
然而,當我嘗試用矩形,使用上述完全相同的代碼,除了設置形狀爲矩形,鼠標向上事件觸發零星,我必須多次單擊鼠標按鈕,直到它觸發事件。
我不確定mouse_move和mouse_up事件之間是否存在衝突,但看不到其他代碼與其他代碼完全相同,除了返回矩形而不是橢圓任何人有任何想法?
編輯:我認爲這可能是事實,當我繪製矩形,鼠標嚴格超過形狀的邊緣,所以我試着將寬度和高度設置爲99%,它似乎工作正常現在!如果有人有任何見解,那麼我會很感激。
這就是我想要的情況,所以我已經有效地重新調整了像素的大小,現在按預期工作。我也會看看事件路由。謝謝 – 2011-12-23 17:25:32