2015-12-22 30 views
1

我想將mousemove事件綁定到對象的實例,然後更新此對象中的一些屬性,我該如何去做這件事?下面是我的XAML:WPF MouseMove在網格上更新對象實例上的位置

<Window.Resources> 
     <h:AdaptiveObject x:Key="adaptiveObject" /> 
    </Window.Resources> 
    <Grid Name="Container" 
      MouseMove="{Binding Source={StaticResource adaptiveObject}, Path=UpdateMouse}" 

這裏是當前C#我有,這只是概念,不工作,只是想告訴你什麼,我試圖:

namespace AdaptiveViewport 
{ 
    public class AdaptiveObject : INotifyPropertyChanged 
    { 
     public event PropertyChangedEventHandler PropertyChanged; 
     protected virtual void OnPropertyChanged(string propertyName) 
     { 
      PropertyChangedEventHandler handler = PropertyChanged; 
      if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); 
     } 
     public int MouseX { get; set; } 
     public int MouseY { get; set; } 

     public UpdateMouse(object sender, MouseEventArgs e) 
     { 
      MouseX = e.X; 
      MouseY = e.Y; 
     } 

回答

1

由於MouseMove是一個你不能簡單地將它綁定到Command的事件。一種方法來達到你想要的東西會在你的後臺代碼的使用方法:背後

<Grid MouseMove="OnMouseMove" Name="Container">...</Grid> 

代碼:

private void OnMouseMove(object sender, MouseEventArgs e) 
{ 
    var p = Mouse.GetPosition(Container); 
    // p.X and p.Y are your coordinates here 
} 

可以或許還可以使用混合交互功能,但我不能弄清楚如何將座標傳遞給綁定命令。

相關問題