4

我正在为具有用户控件的游戏制作地图编辑器,该控件具有图像。在该控件中,我将事件附加MouseWheel到它,但我注意到两个问题,我希望能够更好地理解它的行为方式以及如何正确实现它。

一方面,该事件似乎仅在鼠标悬停在它上方而不是在控件处于焦点时触发。如果可能的话,我想切换它并能够触发事件,无论鼠标在哪里,只要该控件处于焦点状态,第二个问题是当数字为正时检查增量可以正常工作,但是当我得到当它为负数时返回一个数字,我得到一个 0xfffffffd 或该范围内的值。如果我总是得到积极的东西,我将如何区分正值和负值之间的差异?

在此先感谢您的帮助。

4

1 回答 1

-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;
    }
}
于 2013-01-15T17:35:41.503 回答