2011-02-23 16 views
6

Tengo un error extraño que estoy intentando depurar sin suerte.'{DependencyProperty.UnsetValue}' no es un valor válido para la propiedad 'FocusVisualStyle'

He subclase hwndhost mostrando algo de contenido, que tienen la siguiente función en esa clase para establecer a pantalla completa:

private void SetFullScreen(bool enable) 
    { 
     if (enable) 
     { 
      fs = new Window(); 
      fs.ResizeMode = ResizeMode.NoResize; 
      fs.WindowState = System.Windows.WindowState.Maximized; 
      fs.WindowStyle = System.Windows.WindowStyle.None; 
      fs.Topmost = true; 
      fs.PreviewKeyDown += delegate(object sender, KeyEventArgs e) { 
       if (e.Key==Key.Escape) 
        FullScreen = false; 
      }; 
      fs.Show(); 
     } 
     else 
     { 
      fs.Close(); 
      fs = null; 
     } 
    } 

Esto funcionó bien en mi prototipo WPF aplicación, pero cuando utilizo este código en mi aplicación principal me sale este error al cerrar la (tecla de escape) y la ventana de fs.close() llamada:

'{DependencyProperty.UnsetValue}' is not a valid value for property 'FocusVisualStyle'.

lo extraño es que ocurre sobre 1.500 ms después del cierre de la ventana. He intentado configurar FocusVisualStyle en fs como nulo, pero parece algo más. La sensación es que trata de enfocar otro elemento en mi aplicación que no tiene esta propiedad, ¡pero realmente no tengo ni idea!

Gracias!

Editar. El problema fue la configuración personalizada de FocusVisualStyle en mi botón de pantalla completa. Configuré en {x: Null} y el problema desapareció.

Respuesta

7

Supongo que el control que se enfoca al cerrar la ventana mencionada tiene un estilo personalizado establecido por usted que no incluye ningún FocusVisualStyle.

para que pueda ayudarlo más, debe explicar un poco más: ¿qué ocurre (o debería suceder) al cerrar esta ventana?

¿Qué tipo de control se supone que debe enfocarse?

+0

Un botón de alternancia inicia el comando de pantalla completa, así que supongo que se enfoca en el retorno. Sin embargo, más tarde, un comando de teclado (por ejemplo, F12) podría iniciarlo, por lo que podría ser cualquier elemento que tenga el foco actual. That togglebutton tiene un estilo personalizado. Intenté configurar el FocusVisualStyle en ese estilo en {x: Null} sin suerte. – DaveO

+1

Miento, se estableció en dos lugares, eliminando el segundo resolvió el problema thx! – DaveO

+0

no hay problema, feliz de ayudar! – David

Cuestiones relacionadas