Tengo una aplicación WinForms que estoy tratando de hacer en pantalla completa (algo parecido a lo que hace VS en modo de pantalla completa).
Actualmente estoy configurando FormBorderStyle
a None
y WindowState
a lo Maximized
que me da un poco más de espacio, pero no cubre la barra de tareas si está visible.
¿Qué necesito hacer para usar ese espacio también?
Para obtener puntos de bonificación, ¿hay algo que pueda hacer para que mi MenuStrip
ocultación automática ceda ese espacio también?
Una solución probada y sencilla
He estado buscando una respuesta para esta pregunta en SO y en algunos otros sitios, pero uno dio una respuesta que era muy compleja para mí y otras respuestas simplemente no funcionan correctamente, así que después de muchas pruebas de código resolví este acertijo.
Nota: Estoy usando Windows 8 y mi barra de tareas no está en modo de ocultación automática.
Descubrí que configurar WindowState en Normal antes de realizar cualquier modificación detendrá el error con la barra de tareas no cubierta.
El código
Creé esta clase que tiene dos métodos, el primero entra en el "modo de pantalla completa" y el segundo sale del "modo de pantalla completa". Por lo tanto, solo necesita crear un objeto de esta clase y pasar el formulario que desea configurar a pantalla completa como argumento al método EnterFullScreenMode o al método LeaveFullScreenMode:
Ejemplo de uso
He colocado esta misma respuesta en otra pregunta de la que no estoy seguro si es un duplicado o no de esta. (Enlace a la otra pregunta: ¿Cómo mostrar un formulario de Windows Form en pantalla completa en la parte superior de la barra de tareas? )
fuente
targetForm.WindowState = FormWindowState.Normal;
al principio de dejar la pantalla completa también. Eso para manejar el caso en el que el usuario va a pantalla completa desde una ventana maximizada.Y para la pregunta de menustrip, intente configurar
cuando esté en modo de pantalla completa, debería desaparecer.
Y al salir del modo de pantalla completa, restablezca el
menustrip1.parent
formulario nuevamente y el menú volverá a ser normal.fuente
Puede utilizar el siguiente código para que se ajuste a la pantalla del sistema y la barra de tareas esté visible.
No es necesario utilizar:
Esa línea interfiere con el
alt+tab
cambio a otra aplicación. ("TopMost" significa que la ventana permanece encima de otras ventanas, a menos que también estén marcadas como "TopMost").fuente
Recientemente hice una aplicación Mediaplayer y usé llamadas a API para asegurarme de que la barra de tareas estuviera oculta cuando el programa se ejecutaba en pantalla completa y luego restauré la barra de tareas cuando el programa no estaba en pantalla completa o no tenía el foco o se había salido.
fuente
Debe configurar su ventana para que esté en la parte superior.
fuente
No sé si funcionará en .NET 2.0, pero me funcionó en .NET 4.5.2. Aquí está el código:
Uso:
fuente
En el evento de movimiento de formulario, agregue esto:
fuente
Trabajé en la idea de Zingd y la hice más simple de usar.
También agregué la tecla F11 estándar para alternar el modo de pantalla completa.
Preparar
Todo está ahora en la clase FullScreen, por lo que no tiene que declarar un montón de variables en su formulario. Simplemente instancia un objeto FullScreen en el constructor de su formulario:
Tenga en cuenta que esto asume que el formulario no se maximiza cuando crea el objeto FullScreen.
Uso
Simplemente use una de las funciones de la clase para alternar el modo de pantalla completa:
o si necesita manejarlo explícitamente:
Código
fuente