我有一个画布,上面有用户控件。将工具提示分配给usercontrol或其子项之一时,该工具提示不会显示(open事件也不会被触发)。我没有明确禁用其中任何一个。
我在应用程序的其他地方放置了大量的工具提示,它们都显示,除了我创建的用户控件上的那些。
有什么想法吗?
层次结构大致如下:
<Grid>
<Canvas>
<UserControl>
<Canvas>
<Line/>
<Rectangle/>
</Canvas>
</UserControl>
</Canvas
</Grid>
答案 0 :(得分:4)
如果Usercontrol的背景为x:Null,则鼠标事件将落入基础内容。您可以使用“透明”来确保鼠标事件转到用户控件。
此行为并非usercontrols所独有;这是所有WPF的一般行为。在您的示例中,假设您对子元素进行了填充,您应该可以将鼠标悬停在这些元素上,并查看已设置的工具提示。
答案 1 :(得分:2)
我终于明白了。 在我的画布上,我正在绘制指针线(水平和垂直显示在我所在的网格上以及左/下方的值),事实证明,当执行命中测试时,它正在击中那些线并停止。通过在所有不相关的几何体上将IsHitTestVisible设置为false,我的工具提示现在可以正确显示。
我看到鼠标进入/离开事件的原因是因为当移动光标时,线条会拖动1帧,从而允许鼠标进入/离开但不能移动。
这解决了我的问题。
答案 2 :(得分:0)
当我在我的根画布中测试时,我遇到了这个问题,当背景为null时,我的矩形没有显示工具提示。但是,这不能解决用户控件的问题。我尝试了用户控件和内部画布的透明背景,内部画布内的矩形有黑色背景,但没有运气:工具提示无法打开。
我确实尝试在我的根画布上放置一个工具提示,它确实显示但不是我个人的子用户控件或内部画布/子项,即使它们有背景/填充集。
此外,放置MouseEnter事件表明当鼠标进入内部画布时它确实会触发,但工具提示不会弹出。