2009-12-02 23 views
6

Al cambiar de una ventana a otra en la aplicación WPF a pantalla completa, si es la primera vez que se muestra la pantalla, el monitor se oscurecerá momentáneamente antes de que se muestre la ventana. Esto solo ocurre la primera vez que se muestra la ventana. ¿Hay alguna manera de precargar cada ventana para que esto no suceda?Precarga de ventana WPF

Esto es lo que he intentado:

myWindow.Show(); 
myWindow.Hide(); 

pero hay un parpadeo visible.

Luego probé:

myWindow.Height = 0; 
myWindow.Width = 0; 
myWindow.WindowState = WindowState.Normal; 
myWindow.Show(); 
myWindow.Hide(); 
myWindow.Height = Screen.PrimaryScreen.Bounds.Height; 
myWindow.Width = Screen.PrimaryScreen.Bounds.Width; 
myWindow.WindowState = WindowState.Maximized; 

Sin parpadeo, pero cuando a continuación, I mostrada la ventana que se manifestó en un estado extraño para una fracción de segundo luego se actualiza para mostrar correctamente.

+0

sólo quiero añadir que no es solamente un problema de las aplicaciones de pantalla completa. Tengo el mismo problema cuando abro una nueva ventana que contiene muchos elementos visuales. El problema está en crear miles de envoltorios diferentes, p. para elementos en controles de elementos, creación y renderizado de diseños por primera vez. El mismo problema es posible cuando se cambia a la pestaña que contiene muchos controles por primera vez. Entonces, si alguien sabe cómo precargar el control, sería realmente genial. – levanovd

Respuesta

0

Tuve un problema similar. Al final, creé una pantalla de inicio y cargué los controles detrás de la pantalla de bienvenida en un hilo separado. Esto detuvo el flasheo, pero hizo que la aplicación initail se cargara más tiempo.

+0

¿cómo hiciste eso? ¿Crear una instancia de todas las ventanas en la pantalla de bienvenida sin mostrarlas? – SRKX