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

标签 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 文件中?

最佳答案

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

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

关于c# - 如何根据当前主题更改 MahApps.Metro 进度条颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534001/

相关文章:

.net - 当 IsEnabled=False 和 IsEditable = False 时,WPF 组合框选择的项目文本不会变灰

excel - 未找到数据源名称,未指定默认驱动程序”。获取连接失败 "DestinationConnectionOLEDB"

c# - WPF ListViewItem 多个事件通过 AttachedCommandBehaviour

c# - 模拟和 DirectoryEntry

c# - 如何将长字符串数值转换为整数

c# - 使用linq将几个列表合并为一个

C# WPF 椭圆 slider

c# - 如何在c#中更改标签填充模式

c# - WPF Datagrid 获取所有选中的行(不使用 WPF 绑定(bind))

windows - 下拉选择控件 - Windows 8 Metro - XAML