【问题标题】:wpf tooltip not shown on usercontrol or its childrenwpf 工具提示未显示在用户控件或其子控件上
【发布时间】:2009-01-25 20:25:25
【问题描述】:

我有一个画布,上面排列着用户控件。当工具提示被分配给用户控件或其子控件之一时,该工具提示不会显示(打开事件也不会被触发)。我没有明确禁用它们中的任何一个。

我在应用程序的其他地方放置了大量工具提示,它们都显示出来了,除了我创建的用户控件上的那些。

有什么想法吗?

层次结构大致如下:

<Grid>
 <Canvas>
  <UserControl>
   <Canvas>
    <Line/>
    <Rectangle/>
   </Canvas>
  </UserControl>
 </Canvas
</Grid>

【问题讨论】:

    标签: c# wpf tooltip


    【解决方案1】:

    如果用户控件的背景是 x:Null,那么鼠标事件将落入底层内容。您可以使用“透明”来确保鼠标事件转到用户控件。

    这种行为不是用户控件独有的;这是所有 WPF 的一般行为。在您的示例中,假设您对子元素进行了填充,您应该能够将鼠标悬停在这些子元素上,并查看您设置的工具提示。

    【讨论】:

      【解决方案2】:

      我终于明白了。 在我的画布上,我正在绘制指针线(水平和垂直以在网格上显示我所在的位置以及左侧/底部的值),事实证明,当执行命中测试时,它正在命中这些线并停止.通过在所有不相关的几何体上将 IsHitTestVisible 设置为 false,我的工具提示现在可以正确显示。

      我看到鼠标进入/离开事件的原因是因为当移动光标时,线条会拖到后面 1 帧,因此允许鼠标进入/离开但不能移动。

      这解决了我的问题。

      【讨论】:

        【解决方案3】:

        我最初在根画布中测试时遇到了这个问题,当背景为空时,我的矩形没有显示工具提示。但是,这并不能解决用户控件的问题。我为用户控件和其中的画布尝试了透明背景,内部画布内的矩形有黑色背景,但运气不好:工具提示不会打开。

        我确实尝试在我的根画布上放置一个工具提示,它确实显示了,但没有显示在我的单个子用户控件或其内部画布/子控件上,即使它们有背景/填充集。

        另外,放置一个 MouseEnter 事件表明它确实会在鼠标进入内部画布时触发,但工具提示不会弹出。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多