MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit

New colors don't match old v4.x colors

Abierto
#3,590 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug evaluation required
Lenguaje dominante
C#
Estrellas
16.3k
Forks
3.5k
Merge medio
1 d 22 h
PR fusionados (30 d)
8

Descripción

### Bug explanation

When using MaterialDesignTheme.ObsoleteBrushes.xaml to substitute the new colors to the old ones, the swap isn't good enough. For instance, some of the colors:

![LgSprYsEft](https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/assets/58171461/696d602e-abb1-43a7-b139-67e3a8be1d60)

It can clearly be seen that, in dark mode, the old background being substituted by the card background is not at all the same. I used it as the lowest layer of the app, but now it doesn't work anymore for that. In light mode instead, the situation wasn't great before either with way too much similarity between the colors, and now it's even worse, with the colors having been reduced to just two shades.

This all scheme also doesn't really match MD3 guidelines, since it doesn't really go from the lowest surface to the highest surface, like this:

![firefox_mnPbr4Rec6](https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/assets/58171461/f0d8d024-a6f2-4722-a69f-f731a4f29200)
![firefox_MVdXHc9DUt](https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/assets/58171461/1b9bfeee-d757-4b8b-8775-7ba360e857de)

Up until now I've personally used the surfaces as lowest to highest like this: Background->Toolbar->Paper->Card

1. We could keep doing this by fixing the colors so that they follow more MD3 guidelines, maybe with a couple more surfaces.
2. Alternatively, new colors could be added to represent the various surfaces (ie MaterialDesign.Brush.Surface.Lowest etc...)
3. Alternatively, again, the ElevationAssist.Elevation could be used in some way to change the colors, but I wouldn't know how.

In my opinion, the first one would be easier to do and less disruptive to everyone's work. I've tried throwing together as a proposal:

![immagine](https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/assets/58171461/ab53ab21-01b6-416d-a48e-f94ceebdb303)

Other things that could be added would be more Neutral colors, so every x50 step from 0 to 1000 in order to have more granularity. I'm not sure how the colors were chosen, though.

Also a simple way to substitute the default themes with custom ones (ie create my one resource dictionary and pass it to the ThemeAssist when calling ChangeTheme(). Right now I can only find this hard-coded reference to the themes:

```
private static string? GetResourceDictionarySource(BaseTheme theme)
{
return theme switch
{
BaseTheme.Light => "pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml",
BaseTheme.Dark => "pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Dark.xaml",
_ => null,
};
}
```

I'm not sure what would be the best way to pass a new dictionary to the ThemeAssist, or if it's even the best place to do such thing.

What do you think?

### Version

5.0.0

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con MaterialDesignTheme.ObsoleteBrushes.xaml y el punto de entrada ThemeAssist.GetResourceDictionarySource mostrado en el issue. Compara las asignaciones obsoletas y los recursos de los temas claro y oscuro con las expectativas de superficie de v4.x y MD3 indicadas. La tarea estaría terminada cuando se haya acordado un esquema de colores de superficie y se haya decidido un enfoque para los diccionarios de recursos de temas personalizados.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp
Área
design, desktop
Tipo de issue
Error
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.