Tengo un control que contiene un Togglebutton y un Popup. Cuando se hace clic en ToggleButton, aparece la ventana emergente. Cuando el ToggleButton está desmarcado, la ventana emergente debe cerrarse. Además, al hacer clic fuera de la ventana emergente se debe cerrar y hacer que Togglebutton se desmarque.Interacción emergente y Togglebutton en wpf
He configurado esto estableciendo la propiedad StaysOpen del Popup en falso, y estableciendo la propiedad IsChecked del botón de alternar para que esté enlazado bidireccionalmente a la propiedad IsOpen del Popup.
Todo está bien, aparte de un caso: con el botón marcado y la ventana emergente abierta, al hacer clic en el botón no se cierra la ventana emergente o el botón vuelve a estar desmarcado.
Creo que esto debe ser porque hacer clic en el botón hace que la lógica StaysOpen del Popup establezca la propiedad IsOpen de la ventana emergente en falso. A su vez, esto establece el Togglebutton sin marcar. Esto debe suceder antes de que se haga clic en el botón, de modo que el clic vuelve a verificar el botón, es decir, una condición de carrera.
¿Alguna idea de cómo puedo obtener el comportamiento que quiero?
que es perfecto, gracias. –
Un problema con este enfoque es que si hace clic fuera de la ventana emergente, en realidad no hace clic en nada. No desea hacer clic en 'ToggleButton', pero desea hacer clic en todo lo demás – svick