2017-10-16 10 views
0

J'aimerais obtenir System.Windows.Media.Color de MahApps.Metro.Accent Pour ce faire, j'ai essayé:WPF, Mahapps, ThemeManager, comment convertir '' Accent » en "ColorHex"

MahApps.Metro.ThemeManager.ChangeAppStyle(Application.Current, 
         MahApps.Metro.ThemeManager.GetAccent("Green"), 
         MahApps.Metro.ThemeManager.GetAppTheme("BaseLight")); 

// var == Tuple<MahApps.Metro.AppTheme, MahApps.Metro.Accent> 
var AppStyle = MahApps.Metro.ThemeManager.DetectAppStyle(Application.Current); 
Color CurrentColor = (Color)ColorConverter.ConvertFromString(AppStyle.Item2.Name); 

Ensuite, la couleur hexagonale réelle de MahApps.Metro.Accent pour 'Green' est #FF548E17 mais la couleur hexagonale de CurrentColor est #FF008000. est-il une méthode pour obtenir #FF548E17 dans le code derrière

Répondre

1

? Vous pouvez obtenir la couleur de toute ressource d'accent avec

// <Color x:Key="AccentColor">#CC60A917</Color> 
Color accentColor = (Color)ThemeManager.GetAccent("Green").Resources["AccentColor"]; 

Le même si vous voulez connaître la couleur d'accent courant sélectionné

Color currentAccentColor = (Color)ThemeManager.DetectAppStyle(Application.Current).Item2.Resources["AccentColor"]; 

Hope this helps!