我想从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
?
答案 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"];
希望这有帮助!