tareas restaurar poner los iconos herramientas dela como centrar barra aparece abajo windows user-interface titlebar custom-titlebar

restaurar - no aparece la barra de tareas windows 10



Pestañas en la barra de título: ¿cuál es el secreto? (4)

Chrome y Firefox 4, entre otras aplicaciones, ahora ponen parte de su interfaz de usuario en la barra de título. En Windows, el sistema operativo normalmente controla toda la barra de título. Una aplicación puede crear una barra de título personalizada eliminando la barra de título del sistema operativo y dibujando una barra de título "falsa" (como WinAmp), pero solo el sistema operativo sabe cómo dibujar los elementos no personalizados de la barra de título (por ejemplo, Cerrar / Minimizar / Maximizar), que varían según la versión del sistema operativo.

¿Por qué mecanismo las aplicaciones como Chrome y Firefox "comparten" la barra de título con el sistema operativo (poner elementos personalizados en la barra de título manteniendo el tema visual original del sistema operativo)?

En Chrome, las pestañas invaden la barra de título para que no haya espacio suficiente para el texto del título.


La barra de título y el borde de la ventana pertenecen al área no cliente (NC) de la ventana. Si está escribiendo una aplicación basada en la bomba de mensajes, puede proporcionar su propia lógica y apariencia de esta área usando los mensajes de la ventana WM_NCPAINT y WM_NCHITTEST (al igual que Jon).

Si bien esta área ha sido bastante moderadamente utilizada en versiones anteriores de Windows, Microsoft recientemente (al menos desde Vista) comenzó a hacer que el área no cliente sea más atractiva y rica en características.

En las aplicaciones modernas, es bastante común ignorar por completo el área no cliente y, en su lugar, crear una ventana que no tiene un borde de ventana estricto y, por lo tanto, consiste SOLAMENTE en un área de cliente. Con este método, la ventana debe proporcionar su propia implementación para dibujar el título de la ventana y los botones de la ventana (minimizar, maximizar / revisar y cerrar). La combinación de esta técnica con la transparencia de la ventana hace que sea posible y bastante fácil crear emocionantes interfaces de usuario.

Si está utilizando WPF, encontrará que la clase WindowChrome es muy útil para este propósito. Esta clase es parte del framework .NET 4 y está disponible como una biblioteca separada para .NET 3.5.

Editar

Obviamente, a alguien no le gusta esta respuesta. Para que quede claro: no digo que así sea como Chrome o cualquier otra aplicación lo esté haciendo. Estoy diciendo que la forma en que lo describí es una solución factible en la que yo y la empresa para la que trabajo hemos utilizado en varios proyectos y sé de hecho que muchas otras aplicaciones usan el mismo enfoque. Puede que no sea lo mejor, ¡pero sin duda es una forma de hacerlo! :-)




Soy demasiado flojo para ir a buscar la fuente de Chrome y Firefox para descubrir exactamente lo que hicieron, pero lo más probable es que incluya un manejo personalizado para WM_NCPAINT y WM_NCHITTEST. Pueden permitir que el sistema operativo haga la pintura básica de la barra de título, luego coloque sus propios bits en la parte superior. La alternativa es hacer toda la pintura ellos mismos, incluidas las llamadas a la api de DWM para manejar todos los pedazos de fantasía. De cualquier manera, es algo feo intentar y hacer, y si no lo haces bien, se verá y se sentirá terrible.