Pregunta

Estoy casi seguro de que sabe la respuesta a esta pregunta, pero tengo la esperanza de que hay algo que he pasado por alto.

Algunas aplicaciones parecen tener el Aero de Vista de la mirada y la sensación de sus barras de título y botones, incluso cuando se ejecuta en Windows XP.(Google Chrome y Windows Live Photo Gallery vienen a la mente como ejemplos). Sé que una manera de lograr esto de WinForms sería crear un sin fronteras forma y sacar el título de la barra de botones de ti mismo, entonces primordial WndProc para asegurarse de mover, redimensionar, y de clics del botón de hacer lo que deberían hacer (no me queda claro en los detalles, pero probablemente podría tirar de él fuera dado de un día para leer la documentación.) Tengo curiosidad por ver si hay un diferente manera más fácil y que estoy con vistas.Tal vez algunas llamadas a la API o ventana de estilos que he pasado por alto?

Creo que Google ha respondido que es para mí, mediante el roll-your-own-enfoque de ventana de Chrome.Voy a dejar la pregunta abierta para otro día en caso de que alguien tiene nueva información, pero creo que he respondido a la pregunta a mí mismo.

¿Fue útil?

Solución

He aquí un artículo con el ejemplo de código completo sobre cómo utilizar su propio personalizado "chrome" para una aplicación:

http://geekswithblogs.net/kobush/articles/CustomBorderForms3.aspx

Esto se parece a algunas cosas realmente buenas.Hay un total de 3 artículos en serie, y funciona genial, y en Vista también!

Otros consejos

Google Chrome es no el uso de la Vista SDK para lograr esto en XP.Si usted mirada en src\chrome\browser\views\frame hay varios archivos para definir el marco del navegador, dependiendo de las capacidades del sistema.En XP, se ve como OpaqueFrame se utiliza;la línea 19 tiene esto que decir:

// OpaqueFrame
//
//  OpaqueFrame is a CustomFrameWindow subclass that in conjunction with
//  OpaqueNonClientView provides the window frame on Windows XP and on Windows
//  Vista when DWM desktop compositing is disabled. The window title and
//  borders are provided with bitmaps.

Parece que el uso de los recursos en src\chrome\app\theme para dibujar el marco de los botones.

Así que parece que mis esperanzas de que hay algún tipo de forma barata para habilitar la Vista tematización en XP se lanzó.La única manera de hacerlo es dibujar manualmente el no-área de cliente de la ventana.Creo algo como esto es, probablemente, la pista de la derecha, ya que permite a Windows manejar el cliente no cosas como mover y cambiar el tamaño de la ventana.

A menos que alguien pueda encontrar un método por arte de magia habilitar la Vista a los temas de XP, esta es la respuesta a la pregunta, pero yo, obviamente, no se puede marcar mi propio post como respuesta.

Owen, estoy usando Chrome en windows XP y no veo "Aero de Vista de cristal" en el tema de la ventana de Chrome.Yo lo veo como azul sólido.

Si es personalizado tematización de los controles y windows barras de título que desea, que puede llevarse a cabo.Hay un excelente, libre de interfaz de usuario kit de herramientas para WinForms que hace exactamente eso: KryptonToolkit

@Jonathan Holland:Es esto algo que se puede hacer desde .NETA?

Sí, a través de DllImport. Aquí es un buen blog

Google Chrome utiliza el SDK de Windows Vista para obtener la apariencia de vidrio en XP.Usted puede descargar aquí:

http://www.microsoft.com/downloads/details.aspx?FamilyID=4377f86d-c913-4b5c-b87e-ef72e5b4e065&displaylang=en

Con esto, usted necesita habilitado retraso en la carga de la siguiente DLL para obtener el Efecto de Cristal en XP:

  • uxtheme.dll
  • dwmapi.dl

Nada de eso, me temo, es que no hay otra manera fácil de hacer esto.

Usted está en el camino correcto.Usted tendrá que crear un custom Winform y, a continuación, proceder como se ilustra en este ejemplo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top