WPF:防止工具提示更改组件的鼠标进入/离开事件行为

WPF:防止工具提示更改组件的鼠标进入/离开事件行为,wpf,Wpf,我有一个WPF用户控件,其中有两个自定义控件 <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="65" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> &l

我有一个WPF用户控件,其中有两个自定义控件

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="65" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <MyControl x:Name="leftControl" Grid.Column="0" />
    <MyControl x:Name="rightControl" Grid.Column="2" />
</Grid>

自定义控件会在鼠标进入和鼠标离开事件时做出反应。但是,它们也有工具提示。左组件确实显式位于右组件上方,以便在工具提示到达右组件区域时,右组件不会隐藏工具提示

我现在的问题是:工具提示似乎扩展了左侧组件的边界。当显示的工具提示覆盖了右控件的一部分区域,并且我将鼠标悬停在右控件上时,我将获得这两个控件的enter/leave事件,就好像我一进入工具提示之前所在的区域就进入了左控件,同时仍将鼠标悬停在右控件上

我如何告诉WPF在提升鼠标时忽略工具提示区域

一些屏幕截图可以说明:

  • 将鼠标悬停在左侧组件上,工具提示部分覆盖右侧组件的区域

  • 将鼠标悬停在右侧组件上

  • 将鼠标悬停在工具提示结束处的右侧组件上。已引发进入/离开事件。为说明鼠标光标位置,添加了鼠标光标。


  • 谢谢

    除了使用
    工具提示之外,还有一种替代方法:


    只需创建一个相对于鼠标移动的
    弹出窗口
    。离开控件时,
    弹出窗口
    隐藏。这是解决你的问题的一个好办法。您可能希望对显示位置进行调整(即,如果它到达鼠标右边缘,它将转到鼠标左边缘)。我知道这不是一个直接的答案,但它是一个解决方案

    我的回答没有解决你的问题吗?事实证明,工具提示不是真正的问题。因此,虽然我认为你的答案是有价值的,但实际上我不能证明它是正确的。