using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Windows; using HandyControl.Data; namespace HandyControl.Tools { /// /// 资源帮助类 /// public class ResourceHelper { /// /// 获取字符串 /// /// /// public static string GetString(string key) => Application.Current.TryFindResource(key) as string; /// /// 获取字符串 /// /// /// /// public static string GetString(string separator = ";", params string[] keyArr) => string.Join(separator, keyArr.Select(key => Application.Current.TryFindResource(key) as string).ToArray()); /// /// 获取字符串 /// /// /// public static List GetStringList(params string[] keyArr) => keyArr.Select(key => Application.Current.TryFindResource(key) as string).ToList(); /// /// 获取资源 /// /// /// public static T GetResource(string key) { if (Application.Current.TryFindResource(key) is T resource) { return resource; } return default(T); } /// /// 获取HandyControl皮肤 /// /// /// public static ResourceDictionary GetSkin(SkinType skin) => new ResourceDictionary { Source = new Uri($"pack://application:,,,/HandyControl;component/Themes/Skin{skin.ToString()}.xaml") }; /// /// 获取皮肤 /// /// /// /// /// public static ResourceDictionary GetSkin(Assembly assembly, string themePath, SkinType skin) { try { var uri = new Uri($"pack://application:,,,/{assembly.GetName().Name};component/{themePath}/Skin{skin.ToString()}.xaml"); return new ResourceDictionary { Source = uri }; } catch { return new ResourceDictionary { Source = new Uri($"pack://application:,,,/{assembly.GetName().Name};component/{themePath}/Skin{SkinType.Default.ToString()}.xaml") }; } } } }