2013-05-14 27 views
0

備案:我是Silverlight和XAML的新手。在Silverlight 5中顯示鼠標位置,MVVM

我試圖簡單地在我的畫布(或任何其他元素)中顯示相對的鼠標座標。 在閱讀了很多關於這個問題的文章之後,我很遺憾地不知道這個問題。 我的Silverlight 5項目使用MVVM和Caliburn micro。

這怎麼辦? 會欣賞幫助實施此。

謝謝, 蓋伊。

回答

2

你需要更具體一點,你試圖把它與什麼控制,但你有沒有嘗試接線事件到MouseMove事件? Like MouseMove="Handle_MouseMove"

public void Handle_MouseMove(object sender, MouseEventArgs args) 
{ 
    mouseVerticalPosition = args.GetPosition(null).Y; 
    mouseHorizontalPosition = args.GetPosition(null).X; 
} 

這是你在找什麼?

如果你想這對整個畫布上發生,你可以代替線它高達PointerMoved

MouseEventArgs。這可以獲得XY的位置,它可以與MouseUpMouseDownMouseMove事件一起使用。

+0

如何在不使用代碼隱藏的情況下做到這一點? (使用MVVM) 我正在使用Caliburn.Micro,但我沒有找到一種方法將MouseMove事件函數綁定到ViewModel。 –

0

你必須捕捉鼠標點擊事件,並且有一些事件處理程序可以用它來捕捉位置。

private void CadLayoutRoot_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
    { 
       double point1 = e.GetPosition(bitmapCadView.UIElement).X; 
       double point2 = e.GetPosition(bitmapCadView.UIElement).Y; 
    }