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

时间:2017-10-16 07:34:58

标签: wpf colors mahapps.metro

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

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

然后MahApps.Metro.Accent的{​​{1}}的实际十六进制颜色为'Green',但#FF548E17的十六进制颜色为CurrentColor。是否有任何方法可以在代码中获得#FF008000

1 个答案:

答案 0 :(得分:1)

您可以使用

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

如果您想知道当前所选的强调色

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

希望这有帮助!