2

何らかの理由で、マウスが子の上にある場合、スクロールビューアーはマウスホイールイベントを処理しません (または、マウスホイールを使用すると少なくともスクロールします)。マウスホイールがスクロールビューア領域全体にあるときに、マウスホイールがスクロールするようにします。それか、スクローラーに含まれるものをクリックすると、マウスがどこにあるかに関係なく、フォーカスがあるためマウスホイールが処理されます。これを行う簡単な方法はありますか?

基本的なレイアウト ツリーは、XAML では次のようになります。

<ScrollViewer x:Name="scroller">
    <StackPanel x:Name="stackPanel" Orientation="Vertical">
        <Expander>
            <WrapPanel />
        </Expander>
        <Expander>
            <WrapPanel />
        </Expander>

    </StackPanel>
</ScrollViewer>
4

1 に答える 1

2

私は問題を理解しました。私は実際に作成したカスタム WrapPanel を使用していましたが、コントロールに独自のスクロールビューアーがあることを忘れていました (自動サイズに設定されているため、表示されません)。そのため、ラップパネルのスクローラーは、外側のスクローラーからマウスホイール イベントを盗んでいました。カスタムラップパネルでスクローラーを取り出したところ、すべてが正常に機能するようになりました。

于 2010-07-08T14:34:39.887 に答える