WPF、Mahapps、ThemeManager,如何将“Accent”转换为"ColorHex"?

WPF, Mahapps, ThemeManager, how to convert ''Accent" into "ColorHex"?

我想从 MahApps.Metro.Accent 得到 System.Windows.Media.Color。为此,我尝试了:

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);

那么 'Green'MahApps.Metro.Accent 的实际十六进制颜色是 #FF548E17CurrentColor 的十六进制颜色是 #FF008000。有什么方法可以在后面的代码中获取 #FF548E17 吗?

您可以使用

从任何重音资源中获取颜色
// <Color x:Key="AccentColor">#CC60A917</Color>
Color accentColor = (Color)ThemeManager.GetAccent("Green").Resources["AccentColor"];

如果你想知道当前选择的强调色也是如此

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

希望对您有所帮助!