2009-09-24 23 views
12

Actualmente estoy aprendiendo WPF. Realmente lo estoy disfrutando hasta ahora. Me encanta lo fácil que es crear aplicaciones atractivas y me gustaría crear una aplicación que tenga un borde de ventana personalizado. Me gustaría para que se vea algo como esto:Creando formularios personalizados en WPF?

Sé que sólo pudiera cambiar fácilmente el tipo de ventana que no tiene una frontera e ir de allí, pero que parece muy similar a Windows Forms. ¿No sería mejor crear una clase derivada de Window y diseñarla? Si es así, ¿cómo puedo hacer esto? ¡Gracias!

Respuesta

15

Aquí está un gran artículo sobre la personalización de la ventana "cromo" con WPF:

Custom Window Chrome in WPF

Se acompaña de un proyecto Galería de código desde donde se puede descargar el código:

WPF Chrome

3

Para mostrar bordes no estándar, debe establecer AllowsTransparency = True y no Border desde la ventana. Si quieres hacer esto en la clase, depende de ti. Básicamente, debes darte cuenta de que WPF es solo una aplicación de DirectX alojada en una ventana estándar. Entonces, si desea un comportamiento de Windows no estándar, debe soltar el borde de la ventana estándar y comenzar a volver a cablearlo en función de los eventos de ventana estándar que desee controlar. Arrastrando, minimizar/maximizar/restaurar, barra de título.

Realmente, no debería tomar más de 30 minutos a una hora para encontrar algo parecido a lo que desea, y ciertamente podría poner su ventana personalizada en una clase base para su reutilización en el camino .

Tengo la sensación, en la mayoría de los casos, de que esta será la opción mejor y más rápida que intentar anular el dibujo predeterminado de Windows.

+0

Tenga cuidado con la accesibilidad, etc., si vuelve a inventar la barra de título de la ventana estándar. ¿Cómo sabrá alguna herramienta de accesibilidad cómo cerrar una ventana, etc.? Sin embargo, es posible que no le importe su solicitud. –

0

Hay un producto llamado "Blendables" que contiene un control ChromelessWindow en su paquete "Essentials Mix" que hace que esto sea muy fácil de hacer. Nunca lo he usado, solo sé que existe y pensé que podría ser útil. Como mínimo, muestra que puede hacer lo que le pide para crear cromos reutilizables y templables.

Cuestiones relacionadas