Files
ShrlAlgoToolkit/AntDesignWPF/Appearance/ThemesDictionary.cs
2025-07-31 20:12:24 +08:00

33 lines
951 B
C#

using System.Windows.Markup;
namespace AntDesignWPF.Appearance;
/// <summary>
/// 提供一个字典实现,其中包含组件和其他设备使用的主题资源。
/// </summary>
[Localizability(LocalizationCategory.Ignore)]
[Ambient]
[UsableDuringInitialization(true)]
public class ThemesDictionary : ResourceDictionary
{
public ThemesDictionary() { SetSourceBasedOnSelectedTheme(ThemeMode.Light); }
private void SetSourceBasedOnSelectedTheme(ThemeMode? selectedApplicationTheme)
{
var themeName = selectedApplicationTheme switch
{
ThemeMode.Light => "Light",
ThemeMode.Dark => "Dark",
_ => "Light",
};
Source = new Uri($"{ThemeManager.ThemesDictionaryPath}{themeName}.xaml", UriKind.Absolute);
}
/// <summary>
/// 设置默认应用程序主题。
/// </summary>
public ThemeMode Theme { set => SetSourceBasedOnSelectedTheme(value); }
}