¿Cómo puedo diseñar el borde y la barra de título de una ventana en WPF?

Estamos desarrollando una aplicación WPF que utiliza el conjunto de controles de Telerik y todo funciona y se ve bien. Desafortunadamente, hace poco necesitamos reemplazar la clase base de todos nuestros diálogos, cambiando RadWindow por la ventana estándar de WPF (el motivo es irrelevante para esta discusión). Al hacerlo, terminamos teniendo una aplicación que todavía se veía bonita en todas las computadoras de los desarrolladores (Windows 7 con Aero habilitado) pero era fea cuando se usaba en el entorno de nuestro cliente (Servicios de Terminal Server bajo Windows Server 2008 R2).

RadWindow de Telerik es un control de usuario estándar que imita el comportamiento de un diálogo, por lo que el diseño no fue un problema. Sin embargo, con Window de WPF, me cuesta mucho cambiar su “frontera”. Lo que quiero decir con “borde” aquí es tanto la barra de título con el ícono como los 3 botones estándar (Minimizar, Maximizar / Restaurar, Cerrar) y el control de tamaño alrededor de la ventana.

¿Cómo puedo cambiar el aspecto de estos artículos?

  • Color de la barra de título
  • 3 botones estándar
  • Color del borde real de la ventana

Con esquinas redondeadas si es posible.

Esas son áreas “no cliente” y están controladas por Windows. Aquí están los documentos de MSDN sobre el tema (la información pertinente está en la parte superior).

Básicamente, configura WindowStyle = “None”, luego construye su propia interfaz de ventana. ( pregunta similar sobre SO )

Necesitas configurar

WindowStyle="None" , AllowsTransparency="True" y opcionalmente ResizeMode="NoResize"
y luego establezca la propiedad Style de la ventana en su estilo de ventana personalizado, donde diseña la apariencia de la ventana (barra de título, botones, borde) a todo lo que desee y muestra el contenido de la ventana en un ContentPresenter .

Este parece ser un buen artículo sobre cómo puede lograr esto, pero hay muchos otros artículos en Internet.

Encontré una solución más directa del comentario @DK en esta pregunta , la solución está escrita por Alex y se describe aquí con la fuente, para hacer una ventana personalizada:

  1. Descargue el proyecto de muestra aquí
  2. edite el archivo generic.xaml para personalizar el diseño.
  3. disfrutar :).

Compruebe la siguiente muestra de WPF que personaliza la apariencia de una ventana en XAML

Este ejemplo muestra cómo personalizar completamente el estilo / apariencia de una ventana, incluidas las áreas que no son de cliente: barra de título, bordes, botones de máximo, mínimo y de cierre, al tiempo que proporciona toda la funcionalidad esperada.

Te sugiero que comiences desde una solución base y la personalices para que se ajuste a tus necesidades, ¡eso es mejor que empezar de cero!

Estaba buscando lo mismo y caigo en esta solución de código abierto, espero que ayude.

    Intereting Posts