我正在使用 Devexpress 和 WPF。用户可以应用 devexpress 提供的不同主题。
ThemeManager.ApplicationThemeName = Theme.MetropolisDarkName; //MetropolisDarkName is name of a Theme.
在我的应用程序中,用户可以选择要应用的任何主题。但是如果他关闭应用程序并再次打开它,主题变化就不一样了。我希望保存这些更改,以便如果用户在应用主题后再次打开它,则应保存并应用更改。
我是否必须将主题名称保存在数据库中,或者是否有任何其他方法可以解决此问题。我需要你的建议。 谢谢。
最佳答案
在 Visual Studio 中执行此操作的 super 简单方法是将新的 .settings
文件添加到您的项目,并定义 ThemeName
的设置。您可以在 C# 项目模板中的 General
下找到设置模板。设置文件本身只是一个设计器,具有 System.Configuration.ApplicationSettingsBase
类型的基础类。
创建的类将设置值保存到 app.config
。巧妙的是,您可以将设置定义为应用程序或用户,因此在同一台机器上使用该应用程序的不同用户可以拥有自己的自定义设置。
以下假设您创建了文件 Settings.settings
,其中包含一个名为 ThemeName
且类型为 string
的条目。
从设置中获取主题
private void Window_Loaded(object sender, RoutedEventArgs e)
{
ThemeManager.ApplicationThemeName = Properties.Settings.Default.ThemeName;
}
保存主题
public void SetTheme(string themeName) {
ThemeManager.ApplicationThemeName = themeName;
Properties.Settings.Default.ThemeName = themeName;
Properties.Settings.Default.Save();
}
Settings on MSDN
关于c# - 如何在 WPF 中保存应用程序主题名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280003/