如何在WPF中保存应用程序主题名称

Zoy*_*ikh 3 .net c# wpf devexpress

我正在使用Devexpress和WPF.用户可以通过devexpress提供不同的主题.

 ThemeManager.ApplicationThemeName = Theme.MetropolisDarkName; //MetropolisDarkName is name of a Theme.
Run Code Online (Sandbox Code Playgroud)

在我的应用中,用户可以选择要应用的任何主题.但如果他关闭应用程序并再次打开它,主题更改就不一样了.我希望保存这些更改,因此如果用户在应用主题后再次打开它,则应保存并应用更改.

我应该在数据库中保存主题的名称还是有任何其他方法来解决这个问题.我需要你的建议.谢谢.

Dan*_*nez 6

在Visual Studio中执行此操作的超级简单方法是向项目添加新.settings文件,并定义设置ThemeName.您可以General在C#项目模板下找到设置模板.设置文件本身只是一个具有类型的底层类的设计器System.Configuration.ApplicationSettingsBase.

创建的类将设置值保存到app.config.巧妙的是您可以将设置定义为应用程序或用户,因此在同一台计算机上使用该应用程序的不同用户可以拥有自己的自定义设置.

以下假定您Settings.settings使用名为ThemeNametype 的条目创建了该文件string.

从"设置"中获取主题

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    ThemeManager.ApplicationThemeName = Properties.Settings.Default.ThemeName;
}
Run Code Online (Sandbox Code Playgroud)

保存主题

public void SetTheme(string themeName) {
    ThemeManager.ApplicationThemeName = themeName;
    Properties.Settings.Default.ThemeName = themeName;
    Properties.Settings.Default.Save();
}
Run Code Online (Sandbox Code Playgroud)

MSDN上的设置