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
的实际十六进制颜色是 #FF548E17
但 CurrentColor
的十六进制颜色是 #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"];
希望对您有所帮助!
我想从 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
的实际十六进制颜色是 #FF548E17
但 CurrentColor
的十六进制颜色是 #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"];
希望对您有所帮助!