2009-01-25 20 views
5

Tengo un lienzo con controles de usuario dispuestos en él. Cuando se asigna una sugerencia de herramienta al control de usuario o a uno de sus elementos secundarios, esa información sobre herramientas no se muestra (tampoco se desencadena el evento abierto). No deshabilito explícitamente ninguno de ellos.wpf tooltip no se muestra en usercontrol o sus hijos

He colocado un montón de información sobre herramientas en otros lugares de la aplicación y todos se muestran, excepto los que están en el usercontrol que he creado.

¿Alguna idea?

Jerarquía es más o menos como sigue:

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

Respuesta

2

Finalmente lo descubrí. En mi lienzo, dibujaba líneas de punteros (horizontales y verticales para mostrar en la cuadrícula donde estoy y los valores de la izquierda/abajo), resulta que cuando se realizó la prueba de impacto, estaba golpeando esas líneas y parada. Al configurar IsHitTestVisible en falso en todas las geometrías irrelevantes, mi información sobre herramientas ahora se muestra correctamente.

La razón por la que estaba viendo el mouse entrar/salir del evento fue porque al mover el cursor, las líneas arrastrarían 1 fotograma detrás y permitirían que el mouse entre/salga pero no se mueva.

Esto resuelve mi problema.

4

Si el fondo de la Usercontrol es x: Null, a continuación, los eventos de ratón caerá hasta el contenido subyacente. Puede usar "Transparente" para garantizar que los eventos del mouse vayan al control de usuario.

Este comportamiento no es exclusivo de los controles de usuario; es el comportamiento general de todo WPF. En su ejemplo, suponiendo que tiene un relleno de elementos secundarios, debería poder pasar el cursor sobre ellos y ver las sugerencias que ha establecido.

0

Tuve este problema originalmente cuando probé en mi lienzo raíz, mi rectángulo no mostraba una información sobre herramientas cuando el fondo era nulo. Sin embargo, esto no resuelve el problema para el control del usuario. Probé un fondo transparente para el control del usuario y el lienzo en su interior, el rectángulo dentro de ese lienzo interior tiene un fondo negro y, sin embargo, no tuve suerte: la información sobre herramientas simplemente no se abre.

Intenté colocar una información sobre herramientas en mi lienzo raíz y, de hecho, aparece pero no en mis controles de usuario secundarios individuales ni en su lienzo interior/secundarios, aunque tengan un conjunto de fondo/relleno.

Además, colocar un evento MouseEnter muestra que de hecho se dispara cuando el mouse entra en el lienzo interior, sin embargo, la información sobre herramientas no se abrirá.