Lo que realmente quiero es una versión de IsHitTestVisible que ignora ratón clic eventos, pero todavía las trampas de ratón entrar y salir eventos.WPF: Ignorar clics del ratón en superposición/adorner, pero manejar MouseEnter caso
Antecedentes: Una superposición informativa aparece bajo el control con el foco siempre. Este es un requisito, por lo que no tengo la libertad de eliminar este comportamiento. Esto se implementa utilizando un adorno que contiene una forma de rectángulo, lleno con un pincel de imagen. Todos los controles se crean programáticamente, sin XAML.
Comportamiento deseado: Cuando el usuario pasa el rectángulo, debe volverse parcialmente transparente. Esto es para que puedan ver los otros controles debajo de la superposición y hacer clic en ellos. Cuando el usuario hace clic en la superposición, el clic debe pasarse a cualquier control que esté debajo de la superposición, justo donde hizo clic el usuario.
Problema: si fijo IsHitTestVisible a True para permitir clics del ratón para pasar a través, no consigo eventos MouseEnter.
¿Existe una manera simple de dejar IsHitTestVisible True, y luego pasar todos menos 2-3 eventos al control correcto debajo del adorno? Estoy buscando una solución que no implique calcular qué control hay debajo del cursor, ya que WPF es claramente capaz de hacer esto por mí.
Como alternativa, ¿podría establecer IsHitTestVisible en False pero luego usar otro método simple para determinar cuándo el mouse está sobre el adorno?
ACTUALIZACIÓN: Todavía estoy esperando una respuesta, pero a partir de ahora la solución más prometedora parece estar dejando IsHitTestVisible cierto, y el uso de la API de WPF hit pruebas para averiguar qué tipo de control fue la base del ratón cursor; si es uno que conozco, le enviaré un comando Click. Sin embargo, no estoy seguro si vale la pena hacerlo; a partir de ahora, al hacer clic, se desactiva mi superposición para que el usuario solo tenga que hacer clic dos veces.
Gracias!
¿Alguna vez resolvió esto? Tengo exactamente el mismo requisito. – Grokys