如何根据当前主题更改MahApps.Metro进度条颜色?

时间:2015-11-04 23:22:42

标签: c# wpf xaml mahapps.metro

我有一个像这样定义的MahApps.Metro进度条;

<Controls:MetroProgressBar Name="progressBar"
                     Grid.Column="0"
                     Grid.Row="2"
                     Minimum="0"
                     Maximum="100"
                     Height="20"
                     Foreground="LightBlue"
                                   />

我没有将Foreground定义为静态LightBlue,而是希望根据我当前的主题进行更改。

我正在使用他们的ThemeManager

更改主题
MahApps.Metro.ThemeManager.ChangeAppStyle(System.Windows.Application.Current,
                                    MahApps.Metro.ThemeManager.GetAccent(myAccent),
                                    MahApps.Metro.ThemeManager.GetAppTheme(myTheme));

有没有办法从应用程序和xaml文件中获取当前主题或重音符号?

1 个答案:

答案 0 :(得分:2)

当前主题的强调颜色在资源AccentColor中定义为颜色,在资源AccentColorBrush中定义为画笔。您只需将画笔分配到进度条:

<Controls:MetroProgressBar Name="progressBar"
                     Grid.Column="0"
                     Grid.Row="2"
                     Minimum="0"
                     Maximum="100"
                     Height="20"
                     Foreground="{DynamicResource AccentColorBrush}"
                                   />