これが私の要素ツリーの構成方法です(無関係な情報は削除されています)。
<TabItem Style="Click_PutNormalCursorBack">
<ScrollViewer>
<ItemsControl Style="ContainsMuchLabels_n_CollapsibleGroupeHeaders">
<Label Style="Click_ChangeCursor" />
</ItemsControl>
<ScrollViewer>
</TabItem>
ドラッグアンドドロップをシミュレートしています。クリック可能なラベルをクリックすると、カーソルが変形して、ドラッグしたような印象を受けます。私が欲しいのは、TabItemをクリックすると、通常のカーソルが元に戻ることです。
PreviewMouseDown イベントを使用すると、ラベルのクリックが許可されないため、使用できません。
私が見つけた解決策の 1 つは、ScrollViewer と ItemsControl の間の要素ツリーに大きなパネルを追加して、クリックを受け取る透明な背景を追加し、ItemsControl の CollapsibleGroupHeaderとItemsPanel にイベント ハンドラーを配置することでしたが、実際にはエレガントな解決策ではありません。
そのような問題を解決するために、WPF で RoutedEvents を扱います...
注:私のハンドラーは私のスタイルではなく、より多くの情報を提供するためだけのスタイルです
私よりも良い解決策はありますか?