.net - ingles - modo oscuro windows 10 explorador de archivos
¿Cómo enlazar el fondo de la ventana con el color de fondo de la ventana de un tema? (2)
¿Cómo puedo vincular el color de fondo de ventana predeterminado del tema a un fondo de ventana?
He intentado lo siguiente:
<Window x:Class="Shell"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Shell"
Height="300"
Width="300"
Background="{DynamicResource WindowBackgroundBrush}"
>
Pero el color de fondo aparece como negro y eso no parece correcto cuando se usa el tema Luna. Usando el tema Luna, esperaría que el color beige / marrón se encuentre a menudo en Windows XP.
ACTUALIZACIÓN: Después de leer sus respuestas, jugar con StyleSnooper y pensar un poco más sobre esto, he llegado a la siguiente conclusión:
La ventana usará SystemColors.WindowBrush como color de fondo por defecto. Este color es blanco en la mayoría de los temas que he probado y probablemente esté bien. Creo que el blanco es también el color de fondo de Windows en WinForms. Sin embargo, el color de fondo del formulario predeterminado en WinForms no es el fondo de la ventana, sino el control. Entonces, si quiero ese color, uso SystemColors.ControlBrush
como lo señala Lucas .
En un momento dado, estaba tratando de lograr el color de control pardusco / beige de WinForms en Windows XP. Probablemente esto no sea posible en Windows Vista ya que el control de color en Vista es algo gris. Ejecutar una aplicación WinForms en Windows Vista no lo representará como beige / marrón, sino gris. En este caso, creo que tenemos que aplicar nuestros propios estilos personalizados para lograr el aspecto "original" de Windows XP en Vista.
¡Gracias a todos por ayudarme a resolver esto!
¿La aplicación de un tema en realidad anula los pinceles del sistema como era de esperar? Si es así, debería poder hacer esto:
<Window ...
Background="{x:Static SystemColors.WindowBrush}
...>
Editar
Según el comentario de Manga, es probable que desee utilizar SystemColors.ControlBrush para lograr el efecto deseado, porque WindowBrush en la mayoría de los sistemas es blanco. ControlBrush es el color "grisáceo" que está viendo en Windows XP.
Hubiera pensado que simplemente dejando la propiedad de Background
configurar en su elemento de Window
conseguiría esto. El objetivo de un tema es que afecta la apariencia predeterminada de los elementos visuales, como su Window
.
EDITAR Puede mirar StyleSnooper : le permitirá ver la plantilla predeterminada para un control (como Window). Debería poder determinar a qué propiedad es vinculante para cada tema.