New colors don't match old v4.x colors

Aberta
#3,590 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
25/100
Tipo de issue
Bug
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
csharp
Domínio
design, desktop

Direção de pesquisa

Comece com MaterialDesignTheme.ObsoleteBrushes.xaml e o ponto de entrada ThemeAssist.GetResourceDictionarySource mostrado na issue. Compare os mapeamentos obsoletos e os recursos dos temas claro/escuro com as expectativas de surface do v4.x e do MD3 relatadas. A tarefa estará concluída quando houver um esquema de cores de surface acordado e uma abordagem definida para dicionários de recursos de temas personalizados.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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

Linguagem predominante
C#
Estrelas
16.3k
Forks
3.5k
Merge médio
4h 25min
PRs com merge (30d)
4

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de MaterialDesignInXAML/MaterialDesignInXamlToolkit

Todas as issues de MaterialDesignInXAML/MaterialDesignInXamlToolkit

Issues semelhantes

Mais issues de C#

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.