2011-07-14 28 views
20

Quiero que mi ventana esté completamente oculta en el inicio. Sin ventana, sin entrada en la barra de tareas. El usuario no ve, la aplicación se inicia.¿Oculta por completo la ventana de WPF al inicio?

¿Cómo puedo darme cuenta de eso?

¡Gracias!

+0

¿Podrá abrir la ventana más tarde? –

+1

Fuera de interés, ¿qué problema soluciona esto realmente? Es posible que deba pensar en utilizar mutexes para evitar que se inicien varias instancias de su aplicación. Un usuario puede pensar que hizo clic mal si no se abre nada ... – LukeN

+0

@LukeN: Un caso de uso válido es usar su aplicación GUI como un programa de línea de comandos (en cuyo caso desea que ejecute el comando en el fondo sin estallar arriba, luego salir). A veces no es viable hacer dos versiones de una aplicación solo para raramente haber usado soporte de línea de comandos. – Cameron

Respuesta

28

Una alternativa al método de H.B. es simplemente configurar el Visibility como oculto y establecer ShowInTaskbar en falso. Esto aún crea la ventana y le permite hacer su trabajo.

<Window x:Class="WpfApplication2.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525" ShowInTaskbar="False" Visibility="Hidden"> 
    <Grid> 

    </Grid> 
</Window> 
+1

¿Estás seguro de tu estado de cuenta? Actualmente estoy tratando de usar tu truco y parece que el evento 'Load' de' MainWindow' nunca se genera si Visibility es 'Hidden'. –

+1

@EmrysMyrooin El evento de carga se activa cuando se ve la ventana por primera vez, ya que nunca se ve, nunca se dispara. Intente utilizar el evento inicializado en su lugar si necesita ejecutar algunas cosas después de que se construye la ventana. – Wobbles

+0

Esto no funcionó para mí. Fue más fácil de usar @ H.B. La respuesta de IE no crea y muestra una ventana si no quiero una. –

18

No mostrar la ventana. Por defecto hay un StartupUri definido en App.xaml, elimínelo y anule el método OnStartup en el código subyacente para crear una ventana, solo Show y como desee.

+1

Creo que esta debería ser la respuesta aceptada – Adam

11

Simplemente no cree una ventana, simplemente elimine el StartupUri de App.xaml.

Puede ser útil establecer la Aplicación en ShutDownMode="OnExplicitShutdown", esto evitará que su aplicación se cierre si se cerró su última ventana.

+2

No creo que en realidad se requiera configurar ShutDownMode en OnExplicitShutdown. Creo que esto solo es necesario si no quiere que la aplicación se cierre cuando finalmente muestra una ventana, y luego la cierra – LukeN

+1

Dependiendo de la aplicación que desea crear, podría ser útil; de lo contrario, la aplicación se cerrará tan pronto como sea posible. la última ventana está cerrada como dijiste. Esto le dará control explícito sobre el ciclo de vida de la aplicación. Pero editaré mi respuesta un poco para reflejar que no es estrictamente necesario. –

Cuestiones relacionadas