New colors don't match old v4.x colors

Aperta
#3,590 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
csharp
Ambito
design, desktop

Direzione di ricerca

Inizia con MaterialDesignTheme.ObsoleteBrushes.xaml e con l’entry point ThemeAssist.GetResourceDictionarySource mostrato nell’issue. Confronta le mappature obsolete e le risorse dei temi chiaro e scuro con le aspettative sulle superfici di v4.x e MD3 riportate. Il lavoro sarebbe completato quando saranno concordati uno schema di colori delle superfici e un approccio per i dizionari di risorse dei temi personalizzati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug evaluation required
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

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
firefox_MVdXHc9DUt

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

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

Lingua principale
C#
Stelle
16.3k
Fork
3.5k
Merge medio
4h 25m
PR unite (30g)
4

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di MaterialDesignInXAML/MaterialDesignInXamlToolkit

Tutte le issue di MaterialDesignInXAML/MaterialDesignInXamlToolkit

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.