这是我的元素树的组成方式(删除了不相关的信息)。
<TabItem Style="Click_PutNormalCursorBack">
<ScrollViewer>
<ItemsControl Style="ContainsMuchLabels_n_CollapsibleGroupeHeaders">
<Label Style="Click_ChangeCursor" />
</ItemsControl>
<ScrollViewer>
</TabItem>
我正在模拟拖放。当你点击可点击的标签时,它会改变你的光标,给你拖动它的印象。我想要的是点击 TabItem,它会放回你的正常光标。
我不能使用 PreviewMouseDown 事件,因为它永远不会允许点击标签。
我发现的一个解决方案是在我的 ScrollViewer 和我的 ItemsControl 之间的元素树中添加一个大面板,具有透明背景以接收点击,在我的 ItemsControl 的 CollapsibleGroupHeader和ItemsPanel 上放置一个事件处理程序,但这并不是一个真正优雅的解决方案。
我在 WPF 中使用 RoutedEvents 来解决这类问题......
注意:我的处理程序不是我的风格,风格只是为了提供更多信息
有比我更好的解决方案吗?