PreviewMouseUp事件的OriginalSource在不同的控件源上不会更改

时间:2018-09-19 10:22:11

标签: c# wpf

这是此question的后续内容。在此问题中,OP要求是否有可能,如果用户单击ToggleButton,则只能打开ComboBox。如果用户单击其他位置,则什么也不会发生。

我的想法是注册到PreviewMouseUp事件,遍历原始发送者的视觉树,如果有切换,则将事件参数的Handled属性设置为true找到了按钮。

我期望的是,如果单击切换按钮的某个位置,则会在视觉树中找到ToggleButton实例,如果单击它的外部,则不会找到ToggleButton实例。

>

我看到的是,在两种情况下都找到了ToggleButton实例。在WPF Visualizer中,我只找到一个ToggleButtonOriginalSource属性始终是DockPanel的{​​{1}}。有人对此有解释吗?

XAML

ToggleButton

背后的代码

<ComboBox PreviewMouseUp="UIElement_OnPreviewMouseUp">
    <ComboBoxItem IsSelected="True">Item 1</ComboBoxItem>
    <ComboBoxItem>Item 2</ComboBoxItem>
    <ComboBoxItem>Item 3</ComboBoxItem>
</ComboBox>

0 个答案:

没有答案
相关问题