備案:我是Silverlight和XAML的新手。在Silverlight 5中顯示鼠標位置,MVVM
我試圖簡單地在我的畫布(或任何其他元素)中顯示相對的鼠標座標。 在閱讀了很多關於這個問題的文章之後,我很遺憾地不知道這個問題。 我的Silverlight 5項目使用MVVM和Caliburn micro。
這怎麼辦? 會欣賞幫助實施此。
謝謝, 蓋伊。
備案:我是Silverlight和XAML的新手。在Silverlight 5中顯示鼠標位置,MVVM
我試圖簡單地在我的畫布(或任何其他元素)中顯示相對的鼠標座標。 在閱讀了很多關於這個問題的文章之後,我很遺憾地不知道這個問題。 我的Silverlight 5項目使用MVVM和Caliburn micro。
這怎麼辦? 會欣賞幫助實施此。
謝謝, 蓋伊。
你需要更具體一點,你試圖把它與什麼控制,但你有沒有嘗試接線事件到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。這可以獲得X
和Y
的位置,它可以與MouseUp
,MouseDown
和MouseMove
事件一起使用。
要完成TNW答:你必須start mouse capture on object:MyElement.CaptureMouse()
在處理方法,你可以在MouseEventArgs使用GetPosition與參數相對座標的的UIElement ...
public void Handle_MouseMove(object e, MouseEventArgs f)
{
var point = f.GetPosition(MyElement);
}
你必須捕捉鼠標點擊事件,並且有一些事件處理程序可以用它來捕捉位置。
private void CadLayoutRoot_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
double point1 = e.GetPosition(bitmapCadView.UIElement).X;
double point2 = e.GetPosition(bitmapCadView.UIElement).Y;
}
如何在不使用代碼隱藏的情況下做到這一點? (使用MVVM) 我正在使用Caliburn.Micro,但我沒有找到一種方法將MouseMove事件函數綁定到ViewModel。 –