Wpf Caliburn.Micro presionando el botón de Cerrar detiene la actualización de controles desde otro hilo.
¿Por qué se detiene la actualización del control WPF cuando presiono y mantengo presionado el botón de cierre de la ventana? Estoy utilizando dotnet472. ¿Cómo puedo solucionar esto?
davy.ai
Cuando presionas y mantienes presionado el botón de cierre de la ventana, se desencadena el evento
Closing
y bloquea el hilo de la interfaz de usuario hasta que todos los controladores registrados hayan finalizado. Esto significa que el hilo de la interfaz de usuario no puede actualizar ningún control durante este tiempo, lo que provoca que el control de WPF deje de recibir actualizaciones.Para solucionar esto, puedes registrar un controlador para el evento
Closing
y llamar al métodoReleaseAllTouches
de la claseTouch
para liberar todos los contactos táctiles, lo que permite que el eventoClosing
se complete rápidamente y evita que el hilo de la interfaz de usuario se bloquee.Aquí tienes un ejemplo de código:
“`c#
private void Window_Closing(object sender, CancelEventArgs e)
{
// Liberar todos los contactos táctiles al cerrar la ventana
if (TouchDevice.GetDeviceCount(this) > 0)
{
TouchDevice[] devices = TouchDevice.GetDevices(this);
foreach (TouchDevice device in devices)
{
device.Release();
}
}
}
Esto debería evitar que el control de WPF deje de recibir actualizaciones cuando presionas y mantienes presionado el botón de cierre de la ventana.