2008-12-24 5 views
5

Tengo 2 elementos de pestaña. En la pestaña No.1, tengo un control que corresponde al evento de cambio de tamaño de ventana y necesito llamar a PointToScreen().¿Cómo sabes si se está procesando tu WPF?

El problema es que la pestaña no 2 está activa y cambio el tamaño de la ventana, el control en la pestaña no.1 reacciona y falla porque su visual no se está procesando y aparece "Esta Visual no está conectada a una excepción PresentationSource" .

¿Sabes cómo comprobar este caso antes de llamar a PointeScreen?

Gracias Ariel

Respuesta

13

Puede marcar "IsVisible" - Esto no corresponde, como un atajo para comparar la propiedad de visibilidad, sino que también le dice si la cosa se representa en la pantalla. No estoy del todo seguro de cómo esto juega en la virtualización de UIElements, pero creo que es consciente de esos escenarios.

+0

Esto es obvio, pero muy útil. ¡Gracias! –

0

La forma en que se realizaría esto es en el código detrás, instalar y desinstalar el controlador de eventos en base a la pestaña siendo seleccionada. Cuando se selecciona Tab1, haga un AddHandler en el control para el Evento de cambio de tamaño de ventana y cuando Tab1 no esté seleccionado (es decir, una pestaña diferente venga al frente) haga un RemoveHandler para el control.

Cuestiones relacionadas