0

我有一个 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>

自定义控件对鼠标进入和鼠标离开事件做出反应以进行操作。但是,它们也有工具提示。左侧组件确实显式位于右侧组件上方,以允许工具提示不会被右侧组件隐藏,以防它们到达右侧组件的区域。

我现在的问题:工具提示似乎自行扩展了左侧组件的边界。当显示的工具提示覆盖右侧控件的部分区域并且我将鼠标悬停在右侧控件上时,我会收到两者的进入/离开事件,就好像我一进入工具提示所在的区域就进入了左侧控件一样以前,同时仍然悬停在正确的控件上。

提高鼠标进入或离开时,如何告诉 WPF 忽略工具提示区域?

一些截图来说明:

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

  2. 将鼠标悬停在正确的组件上 2. 将鼠标悬停在正确的组件上

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

谢谢!

4

1 回答 1

2

有一种替代方法可以使用Tooltip工具提示或类似的东西在 wpf 中随光标移动

只需创建一个Popup相对于您的鼠标移动的。当你离开控制Popup是隐藏的。这是解决您的问题的好方法。您可能想要调整显示它的位置(即,如果它到达右边缘,它会移动到鼠标的左侧)。我知道这不是一个直接的答案,但它是一个解决方案。:)

于 2013-02-19T11:48:25.010 回答