添加自己的'重音'在运行时使用Mahapps.Metro

本文关键字:Mahapps Metro 重音 自己的 添加 运行时 | 更新日期: 2023-09-27 18:02:03

我一直在使用Mahapps。我在地铁待了一段时间,我喜欢这里的色调。但我刚刚想到了一个主意,用户可以选择自己的颜色,并将它们添加到MahApps.Metro.ThemeManager.DefaultAccents -List,然后使用它。但;我该怎么做呢?我知道ThemeManager有一个名为ChangeTheme的函数,它接受一个应用程序(目标应用程序),一个Accent和一个Theme(这是Dark或Light)

Accent对象由一个Name和一个ResourceDictionary组成,如下所示

所以我想我可以创建一个自己的ResourceDictionary,就像我链接的那个,并允许用户更改颜色,并命名它们。但是如何在运行时创建资源词典呢?

添加自己的'重音'在运行时使用Mahapps.Metro

我在vb.net中这样做了(主题有两个复选框):

    Dim accent As MahApps.Metro.Accent = New MahApps.Metro.Accent("Green", New Uri("pack://application:,,,/MahApps.Metro;component/Styles/Accents/Green.xaml", UriKind.RelativeOrAbsolute))
    Dim LightTheme As MahApps.Metro.AppTheme = New MahApps.Metro.AppTheme("BaseLight", New Uri("pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml", UriKind.RelativeOrAbsolute))
    Dim DarkTheme As MahApps.Metro.AppTheme = New MahApps.Metro.AppTheme("BaseDark", New Uri("pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml", UriKind.RelativeOrAbsolute))
    If Me.DarkThemeSelect_check.IsChecked = True Then
        ThemeManager.ChangeAppStyle(Application.Current, accent, DarkTheme)
    ElseIf Me.LightThemeSelect_check.IsChecked = True Then
        ThemeManager.ChangeAppStyle(Application.Current, accent, LightTheme)
    End If

如果您只需要更改主题(深色或浅色):

    ThemeManager.ChangeAppTheme(Application.Current, "BaseLight")