2013-01-15 63 views
3

我正在爲具有包含圖像的用戶控件的遊戲製作地圖編輯器。在這個控制中,我附加了MouseWheel事件,但是我注意到了兩個問題,我希望能更好地理解它爲什麼會這樣做以及如何正確實現它。在WPF自定義控件中處理MouseWheel事件

對於其中一種情況,只有當鼠標懸停在其上而不是控件處於焦點位置時,纔會觸發事件。如果可能的話,我希望切換它,並且無論鼠標在哪個位置處於焦點位置,都能夠觸發事件,而第二個問題是在數字爲正值時檢查三角洲是否正常工作,但是當我得到當它是負數時返回一個數字,我得到的值爲0xfffffffd或該範圍內的某個值。如果我總是得到積極的東西,我該如何區分正面的巴盧和負面的價值?

在此先感謝您的幫助。

+0

嘿你有沒有設法解決這個問題? – reach4thelasers

+0

有沒有人解決過這個問題? – bananamana

回答

-1

如果你想火聚焦元素的嘗試MouseWheel事件:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 

     this.MouseWheel += OnMouseWheel; 
    } 

    IInputElement focusedElement; 

    private void OnMouseWheel(object sender, MouseWheelEventArgs e) 
    { 
     if (focusedElement is TextBox) 
     { 
      var tbx = focusedElement as TextBox; 

      //do something 
     } 
    } 

    protected override void OnPreviewLostKeyboardFocus(KeyboardFocusChangedEventArgs e) 
    { 
     focusedElement = e.NewFocus; 
    } 
}