4

画像を持つユーザー コントロールを持つゲームのマップ エディターを作成しています。そのコントロール内でイベントをアタッチしMouseWheelましたが、2 つの問題に気付きました。なぜこのように動作するのか、また適切に実装する方法について理解を深めたいと考えています。

1 つには、コントロールがフォーカスされているときではなく、マウスがその上に置かれているときにのみイベントが発生するように見えます。可能であれば、それを切り替えて、そのコントロールがフォーカスされている限りマウスがどこにあるかに関係なくイベントを発生できるようにしたいと思います.2番目の問題は、数値が正の場合にデルタをチェックすることですが、負の場合の数値は、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 に答える