This commit is contained in:
ShrlAlgo
2025-08-20 12:10:35 +08:00
parent fcd306b0f7
commit 955a01f564
962 changed files with 7893 additions and 127784 deletions

View File

@@ -1,8 +1,8 @@
using System.Collections.ObjectModel;
using System.Reflection;
using NeumUI.Extensions;
using NeoUI.Extensions;
namespace NeumUI.Appearance;
namespace NeoUI.Appearance;
/// <summary>
/// 管理资源字典
@@ -22,13 +22,14 @@ internal class ResourceDictionaryManager
/// <returns><see cref="ResourceDictionary"/>, <see langword="null"/>如果不存在返回null</returns>
public ResourceDictionary? LookupDictionary(string resourceLookup)
{
Collection<ResourceDictionary> applicationDictionaries = ThemeManager.Current.Resources.MergedDictionaries;
Collection<ResourceDictionary>? applicationDictionaries = ThemeManager.Current?.Resources.MergedDictionaries;
if (applicationDictionaries.Count == 0)
if (applicationDictionaries is { Count: 0 })
{
return null;
}
if (applicationDictionaries == null) return null;
foreach (var t in applicationDictionaries)
{
string resourceDictionaryUri;
@@ -36,7 +37,7 @@ internal class ResourceDictionaryManager
if (t?.Source != null)
{
resourceDictionaryUri = t.Source.ToString();
if (resourceDictionaryUri.Contains(SearchNamespace, StringComparison.OrdinalIgnoreCase) &&
if (resourceDictionaryUri.Contains(SearchNamespace, StringComparison.OrdinalIgnoreCase) &&
resourceDictionaryUri.Contains(resourceLookup, StringComparison.OrdinalIgnoreCase))
{
return t;
@@ -52,7 +53,7 @@ internal class ResourceDictionaryManager
resourceDictionaryUri = t1.Source.ToString();
if (resourceDictionaryUri.Contains(SearchNamespace, StringComparison.OrdinalIgnoreCase)&&
if (resourceDictionaryUri.Contains(SearchNamespace, StringComparison.OrdinalIgnoreCase) &&
resourceDictionaryUri.Contains(resourceLookup, StringComparison.OrdinalIgnoreCase))
{
return t1;
@@ -73,17 +74,17 @@ internal class ResourceDictionaryManager
{
// 获取应用程序的合并资源字典集合
var applicationDictionaries = ThemeManager
.Current
.Resources
.Current?.Resources
.MergedDictionaries;
// 如果没有资源字典或新的Uri为空则返回false
if (applicationDictionaries.Count == 0 || newResourceUri is null)
if (applicationDictionaries is { Count: 0 } || newResourceUri is null)
{
return false;
}
// 遍历顶层资源字典
if (applicationDictionaries == null) return false;
for (var i = 0; i < applicationDictionaries.Count; i++)
{
string sourceUri;
@@ -124,6 +125,7 @@ internal class ResourceDictionaryManager
}
}
}
// 未找到匹配的资源字典返回false
return false;
}