diff --git a/crowdin.yml b/crowdin.yml
index 82ec1a89..66e78b98 100644
--- a/crowdin.yml
+++ b/crowdin.yml
@@ -1,3 +1,5 @@
files:
- source: /src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
translation: /src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.%osx_locale%.resx
+ - source: /src/Snap.Hutao/Snap.Hutao/Resource/Localization/SHRegex.resx
+ translation: /src/Snap.Hutao/Snap.Hutao/Resource/Localization/SHRegex.%osx_locale%.resx
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/App.xaml b/src/Snap.Hutao/Snap.Hutao/App.xaml
index 125db5cf..f23c174d 100644
--- a/src/Snap.Hutao/Snap.Hutao/App.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/App.xaml
@@ -9,6 +9,9 @@
+
+
+
@@ -30,7 +33,6 @@
-
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AchievementIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AchievementIconConverter.cs
index 7c448e0f..58bc1350 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AchievementIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AchievementIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AssociationTypeIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AssociationTypeIconConverter.cs
index af0cd3ca..6ce9994c 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AssociationTypeIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AssociationTypeIconConverter.cs
@@ -3,7 +3,7 @@
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Model.Intrinsic;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarCardConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarCardConverter.cs
index c3f241c7..e5dccfd4 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarCardConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarCardConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarIconCircleConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarIconCircleConverter.cs
index c875b93b..26cccbea 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarIconCircleConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarIconCircleConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarIconConverter.cs
index c918f0f2..5d62802c 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarNameCardPicConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarNameCardPicConverter.cs
index 3fa499f7..b3132c07 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarNameCardPicConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarNameCardPicConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarSideIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarSideIconConverter.cs
index f4846312..a173be9e 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarSideIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/AvatarSideIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/DescriptionsParametersDescriptor.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/DescriptionsParametersDescriptor.cs
index d08c4648..003fdb77 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/DescriptionsParametersDescriptor.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/DescriptionsParametersDescriptor.cs
@@ -5,7 +5,7 @@ using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Metadata;
using Snap.Hutao.Model.Metadata.Avatar;
using Snap.Hutao.Model.Primitive;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/ElementNameIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/ElementNameIconConverter.cs
index b3bc5141..db711f59 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/ElementNameIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/ElementNameIconConverter.cs
@@ -2,7 +2,7 @@
// Licensed under the MIT license.
using Snap.Hutao.Model.Intrinsic;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
using System.Collections.Frozen;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/EmotionIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/EmotionIconConverter.cs
index ce553ccb..760a339e 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/EmotionIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/EmotionIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/EquipIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/EquipIconConverter.cs
index 303799b1..09626ec8 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/EquipIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/EquipIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaAvatarIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaAvatarIconConverter.cs
index 9768f400..5ae05bc0 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaAvatarIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaAvatarIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaAvatarImgConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaAvatarImgConverter.cs
index a157513b..1ec6bf6e 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaAvatarImgConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaAvatarImgConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaEquipIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaEquipIconConverter.cs
index 6a406c72..6c749768 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaEquipIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/GachaEquipIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/ItemIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/ItemIconConverter.cs
index b5bac2bd..f1769c55 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/ItemIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/ItemIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/MonsterIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/MonsterIconConverter.cs
index 5c9e9f09..47f6a4ea 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/MonsterIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/MonsterIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/PropertiesParametersDescriptor.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/PropertiesParametersDescriptor.cs
index 370c8f19..acf216c2 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/PropertiesParametersDescriptor.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/PropertiesParametersDescriptor.cs
@@ -2,7 +2,7 @@
// Licensed under the MIT license.
using Snap.Hutao.Model.Intrinsic;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/QualityColorConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/QualityColorConverter.cs
index 6c55c2c4..be3c3424 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/QualityColorConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/QualityColorConverter.cs
@@ -4,7 +4,7 @@
using Microsoft.UI;
using Snap.Hutao.Model.Intrinsic;
using Snap.Hutao.UI.Xaml.Control.Theme;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
using System.Collections.Frozen;
using Windows.UI;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/QualityConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/QualityConverter.cs
index 1c932bab..1b52ed30 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/QualityConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/QualityConverter.cs
@@ -2,7 +2,7 @@
// Licensed under the MIT license.
using Snap.Hutao.Model.Intrinsic;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/RelicIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/RelicIconConverter.cs
index c7d916d7..b73cc6c2 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/RelicIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/RelicIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/SkillIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/SkillIconConverter.cs
index 237fedc6..2fa8c568 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/SkillIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/SkillIconConverter.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/WeaponTypeIconConverter.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/WeaponTypeIconConverter.cs
index f75b6354..e49a15a0 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/WeaponTypeIconConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Converter/WeaponTypeIconConverter.cs
@@ -3,7 +3,7 @@
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Model.Intrinsic;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
using System.Collections.Frozen;
namespace Snap.Hutao.Model.Metadata.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Abstraction/DbStoreOptions.cs b/src/Snap.Hutao/Snap.Hutao/Service/Abstraction/DbStoreOptions.cs
index 9e9aa78a..7774526e 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Abstraction/DbStoreOptions.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Abstraction/DbStoreOptions.cs
@@ -4,8 +4,10 @@
using CommunityToolkit.Mvvm.ComponentModel;
using Microsoft.EntityFrameworkCore;
using Snap.Hutao.Core.Database;
+using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Entity.Database;
using System.Globalization;
+using System.Linq.Expressions;
using System.Runtime.CompilerServices;
namespace Snap.Hutao.Service.Abstraction;
@@ -30,6 +32,18 @@ internal abstract partial class DbStoreOptions : ObservableObject
return input.ToStringOrEmpty();
}
+ protected void InitializeOptions(string keyLike, Expression> entrySelector, Action entryAction)
+ {
+ using (IServiceScope scope = serviceProvider.CreateScope())
+ {
+ AppDbContext appDbContext = scope.ServiceProvider.GetRequiredService();
+ foreach (SettingEntry entry in appDbContext.Settings.Where(entrySelector))
+ {
+ entryAction(entry.Key, entry.Value);
+ }
+ }
+ }
+
protected string GetOption(ref string? storage, string key, string defaultValue = "")
{
return GetOption(ref storage, key, () => defaultValue);
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Abstraction/IAppInfrastructureService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Abstraction/IAppInfrastructureService.cs
index 0cff36dd..76a1ca4e 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Abstraction/IAppInfrastructureService.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Abstraction/IAppInfrastructureService.cs
@@ -3,7 +3,7 @@
namespace Snap.Hutao.Service.Abstraction;
-internal interface IAppInfrastructureService
+internal interface IAppInfrastructureService : IAppService
{
IServiceProvider ServiceProvider { get; }
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
index 95d8169f..aea37823 100644
--- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
+++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
@@ -90,6 +90,8 @@
+
+
@@ -148,8 +150,6 @@
-
-
@@ -416,11 +416,6 @@
MSBuild:Compile
-
-
- MSBuild:Compile
-
-
@@ -458,12 +453,6 @@
-
-
- MSBuild:Compile
-
-
-
MSBuild:Compile
@@ -778,5 +767,16 @@
+
+
+
+
+ MSBuild:Compile
+
+
+
+
+ MSBuild:Compile
+
diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardBlock.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardBlock.cs
new file mode 100644
index 00000000..6c2ecccd
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardBlock.cs
@@ -0,0 +1,16 @@
+// Copyright (c) DGP Studio. All rights reserved.
+// Licensed under the MIT license.
+
+namespace Snap.Hutao.UI.Xaml.Control.Card;
+
+[DependencyProperty("Text", typeof(string))]
+[DependencyProperty("ImageSource", typeof(object))]
+[DependencyProperty("IsDotVisible", typeof(bool), false)]
+[DependencyProperty("IconSquareLength", typeof(double))]
+internal sealed partial class CardBlock : Microsoft.UI.Xaml.Controls.Control
+{
+ public CardBlock()
+ {
+ DefaultStyleKey = typeof(CardBlock);
+ }
+}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardBlock.xaml b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardBlock.xaml
new file mode 100644
index 00000000..c4ea2e93
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardBlock.xaml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardProgressBar.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardProgressBar.cs
similarity index 74%
rename from src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardProgressBar.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardProgressBar.cs
index a4da71e4..63159821 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardProgressBar.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardProgressBar.cs
@@ -5,7 +5,7 @@ using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media;
-namespace Snap.Hutao.View.Card.Primitive;
+namespace Snap.Hutao.UI.Xaml.Control.Card;
[DependencyProperty("ProgressForeground", typeof(Brush))]
[DependencyProperty("TextForeground", typeof(Brush))]
@@ -13,9 +13,10 @@ namespace Snap.Hutao.View.Card.Primitive;
[DependencyProperty("Value", typeof(double))]
[DependencyProperty("Header", typeof(string))]
[DependencyProperty("Description", typeof(string))]
-internal sealed partial class CardProgressBar : ContentControl
+internal sealed partial class CardProgressBar : Microsoft.UI.Xaml.Controls.Control
{
public CardProgressBar()
{
+ DefaultStyleKey = typeof(CardProgressBar);
}
-}
+}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardProgressBar.xaml b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardProgressBar.xaml
similarity index 63%
rename from src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardProgressBar.xaml
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardProgressBar.xaml
index baf105b4..88eccf99 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardProgressBar.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Card/CardProgressBar.xaml
@@ -1,16 +1,16 @@
+ xmlns:shuxcc="using:Snap.Hutao.UI.Xaml.Control.Card">
-
+
-
+
+
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Theme/Converter.xaml b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Theme/Converter.xaml
index d9b8a21e..663d2642 100644
--- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Theme/Converter.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Theme/Converter.xaml
@@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cwc="using:CommunityToolkit.WinUI.Converters"
xmlns:shmmc="using:Snap.Hutao.Model.Metadata.Converter"
- xmlns:shvc="using:Snap.Hutao.View.Converter">
+ xmlns:shuxdc="using:Snap.Hutao.UI.Xaml.Data.Converter">
@@ -25,12 +25,12 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/BoolToVisibilityRevertConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/BoolToVisibilityRevertConverter.cs
similarity index 93%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/BoolToVisibilityRevertConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/BoolToVisibilityRevertConverter.cs
index f4ec39d6..2cfa0f62 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/BoolToVisibilityRevertConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/BoolToVisibilityRevertConverter.cs
@@ -4,7 +4,7 @@
using CommunityToolkit.WinUI.Converters;
using Microsoft.UI.Xaml;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter;
///
/// This class converts a boolean value into a Visibility enumeration.
diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/DependencyValueConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/DependencyValueConverter.cs
similarity index 94%
rename from src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/DependencyValueConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/DependencyValueConverter.cs
index af71065f..39513e0f 100644
--- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/DependencyValueConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/DependencyValueConverter.cs
@@ -5,7 +5,7 @@ using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Data;
using Snap.Hutao.Core.ExceptionService;
-namespace Snap.Hutao.UI.Xaml.Data;
+namespace Snap.Hutao.UI.Xaml.Data.Converter;
internal abstract class DependencyValueConverter : DependencyObject, IValueConverter
{
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToBoolConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToBoolConverter.cs
similarity index 92%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToBoolConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToBoolConverter.cs
index e80875e9..a05094ea 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToBoolConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToBoolConverter.cs
@@ -3,7 +3,7 @@
using CommunityToolkit.WinUI.Converters;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter;
///
/// This class converts a object? value into a boolean.
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToBoolRevertConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToBoolRevertConverter.cs
similarity index 92%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToBoolRevertConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToBoolRevertConverter.cs
index cbdd8947..8e4cfd8f 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToBoolRevertConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToBoolRevertConverter.cs
@@ -3,7 +3,7 @@
using CommunityToolkit.WinUI.Converters;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter;
///
/// This class converts a object? value into a boolean in reverse.
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToVisibilityConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToVisibilityConverter.cs
similarity index 93%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToVisibilityConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToVisibilityConverter.cs
index 3a05915a..1bf9efd8 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToVisibilityConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToVisibilityConverter.cs
@@ -4,7 +4,7 @@
using CommunityToolkit.WinUI.Converters;
using Microsoft.UI.Xaml;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter;
///
/// This class converts a object? value into a Visibility enumeration.
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToVisibilityRevertConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToVisibilityRevertConverter.cs
similarity index 93%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToVisibilityRevertConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToVisibilityRevertConverter.cs
index aa56db4a..6bab3a8b 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/EmptyObjectToVisibilityRevertConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/EmptyObjectToVisibilityRevertConverter.cs
@@ -4,7 +4,7 @@
using CommunityToolkit.WinUI.Converters;
using Microsoft.UI.Xaml;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter;
///
/// This class converts a object? value into a Visibility enumeration in reverse.
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/Int32ToVisibilityConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Int32ToVisibilityConverter.cs
similarity index 93%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/Int32ToVisibilityConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Int32ToVisibilityConverter.cs
index 92881058..e35f6806 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/Int32ToVisibilityConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Int32ToVisibilityConverter.cs
@@ -5,7 +5,7 @@ using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Data;
using Snap.Hutao.Core.ExceptionService;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter;
///
/// Int32 转 Visibility
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/Int32ToVisibilityRevertConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Int32ToVisibilityRevertConverter.cs
similarity index 94%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/Int32ToVisibilityRevertConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Int32ToVisibilityRevertConverter.cs
index da318110..e30062d1 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/Int32ToVisibilityRevertConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Int32ToVisibilityRevertConverter.cs
@@ -5,7 +5,7 @@ using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Data;
using Snap.Hutao.Core.ExceptionService;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter;
///
/// Int32 反转 Visibility
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/Specialized/BackdropTypeToOpacityConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/BackdropTypeToOpacityConverter.cs
similarity index 81%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/Specialized/BackdropTypeToOpacityConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/BackdropTypeToOpacityConverter.cs
index 3c74030e..8d2f89f4 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/Specialized/BackdropTypeToOpacityConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/BackdropTypeToOpacityConverter.cs
@@ -1,10 +1,9 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.UI.Xaml.Data;
using Snap.Hutao.UI.Xaml.Media.Backdrop;
-namespace Snap.Hutao.View.Converter.Specialized;
+namespace Snap.Hutao.UI.Xaml.Data.Converter.Specialized;
internal sealed class BackdropTypeToOpacityConverter : ValueConverter
{
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/BoolToGridLengthConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/BoolToGridLengthConverter.cs
similarity index 87%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/BoolToGridLengthConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/BoolToGridLengthConverter.cs
index e7b5e77f..5d8b4476 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/BoolToGridLengthConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/BoolToGridLengthConverter.cs
@@ -4,7 +4,7 @@
using CommunityToolkit.WinUI.Converters;
using Microsoft.UI.Xaml;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter.Specialized;
internal sealed class BoolToGridLengthConverter : BoolToObjectConverter
{
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/Int32ToGradientColorConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/Int32ToGradientColorConverter.cs
similarity index 93%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/Int32ToGradientColorConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/Int32ToGradientColorConverter.cs
index 45328f15..e55830ad 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/Int32ToGradientColorConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/Int32ToGradientColorConverter.cs
@@ -2,12 +2,12 @@
// Licensed under the MIT license.
using Microsoft.UI.Xaml;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
using Snap.Hutao.Win32;
using System.Runtime.CompilerServices;
using Windows.UI;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter.Specialized;
///
/// Int32 转 色阶颜色
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/PanelSelectorModeConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/LayoutSwitchModeConverter.cs
similarity index 86%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/PanelSelectorModeConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/LayoutSwitchModeConverter.cs
index cce47a2a..f23866e2 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/PanelSelectorModeConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/LayoutSwitchModeConverter.cs
@@ -3,9 +3,9 @@
using Microsoft.UI.Xaml;
using Snap.Hutao.UI.Xaml.Control;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter.Specialized;
///
/// 条件转换器
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/UInt32ToGradientColorConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/UInt32ToGradientColorConverter.cs
similarity index 93%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/UInt32ToGradientColorConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/UInt32ToGradientColorConverter.cs
index 321c2e3e..87006d3f 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/UInt32ToGradientColorConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/Specialized/UInt32ToGradientColorConverter.cs
@@ -2,12 +2,12 @@
// Licensed under the MIT license.
using Microsoft.UI.Xaml;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
using Snap.Hutao.Win32;
using System.Runtime.CompilerServices;
using Windows.UI;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter.Specialized;
///
/// UInt32 转 色阶颜色
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/StringBoolConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/StringBoolConverter.cs
similarity index 91%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/StringBoolConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/StringBoolConverter.cs
index ffc079b7..8415dbe1 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/StringBoolConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/StringBoolConverter.cs
@@ -3,7 +3,7 @@
using CommunityToolkit.WinUI.Converters;
-namespace Snap.Hutao.View.Converter;
+namespace Snap.Hutao.UI.Xaml.Data.Converter;
///
/// 字符串空检查转换器
diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/ValueConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/ValueConverter.cs
similarity index 93%
rename from src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/ValueConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/ValueConverter.cs
index 58cf81a4..65cfdad4 100644
--- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/ValueConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/ValueConverter.cs
@@ -4,7 +4,7 @@
using Microsoft.UI.Xaml.Data;
using Snap.Hutao.Core.ExceptionService;
-namespace Snap.Hutao.UI.Xaml.Data;
+namespace Snap.Hutao.UI.Xaml.Data.Converter;
internal abstract class ValueConverter : IValueConverter
{
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Converter/VisibilityToObjectConverter.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/VisibilityToObjectConverter.cs
similarity index 92%
rename from src/Snap.Hutao/Snap.Hutao/View/Converter/VisibilityToObjectConverter.cs
rename to src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/VisibilityToObjectConverter.cs
index 62a55620..125004fd 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Converter/VisibilityToObjectConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/Converter/VisibilityToObjectConverter.cs
@@ -2,7 +2,7 @@
// Licensed under the MIT license.
using Microsoft.UI.Xaml;
-using Snap.Hutao.UI.Xaml.Data;
+using Snap.Hutao.UI.Xaml.Data.Converter;
namespace Snap.Hutao.View.Converter;
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/DailyNoteCard.xaml b/src/Snap.Hutao/Snap.Hutao/View/Card/DailyNoteCard.xaml
index b9e42a41..ed5b7882 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Card/DailyNoteCard.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Card/DailyNoteCard.xaml
@@ -9,7 +9,7 @@
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxm="using:Snap.Hutao.UI.Xaml.Markup"
xmlns:shvc="using:Snap.Hutao.View.Control"
- xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
+ xmlns:shuxcc="using:Snap.Hutao.UI.Xaml.Control.Card"
xmlns:shvd="using:Snap.Hutao.ViewModel.DailyNote"
Padding="0"
HorizontalAlignment="Stretch"
@@ -57,7 +57,7 @@
Style="{StaticResource CaptionTextBlockStyle}"
Text="{Binding RefreshTimeFormatted}"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardBlock.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardBlock.xaml.cs
deleted file mode 100644
index 51108dbc..00000000
--- a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardBlock.xaml.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (c) DGP Studio. All rights reserved.
-// Licensed under the MIT license.
-
-using Microsoft.UI.Xaml;
-using Microsoft.UI.Xaml.Controls;
-
-namespace Snap.Hutao.View.Card.Primitive;
-
-[DependencyProperty("Text", typeof(string))]
-[DependencyProperty("ImageSource", typeof(object))]
-[DependencyProperty("IsDotVisible", typeof(bool), false)]
-[DependencyProperty("IconSquareLength", typeof(double), 32D)]
-internal sealed partial class CardBlock : Grid
-{
- public CardBlock()
- {
- // TODO: Convert to custom control
- InitializeComponent();
- }
-}
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/HorizontalCard.xaml b/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/HorizontalCard.xaml
deleted file mode 100644
index 14c6d654..00000000
--- a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/HorizontalCard.xaml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/HorizontalCard.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/HorizontalCard.xaml.cs
deleted file mode 100644
index b31a5606..00000000
--- a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/HorizontalCard.xaml.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) DGP Studio. All rights reserved.
-// Licensed under the MIT license.
-
-using Microsoft.UI.Xaml;
-using Microsoft.UI.Xaml.Controls;
-
-namespace Snap.Hutao.View.Card.Primitive;
-
-[DependencyProperty("Left", typeof(UIElement), default!)]
-[DependencyProperty("Right", typeof(UIElement), default!)]
-internal sealed partial class HorizontalCard : UserControl
-{
- public HorizontalCard()
- {
- InitializeComponent();
- }
-}
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/StatisticsCard.xaml b/src/Snap.Hutao/Snap.Hutao/View/Control/StatisticsCard.xaml
index d1edca97..ffe2df8d 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Control/StatisticsCard.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Control/StatisticsCard.xaml
@@ -9,24 +9,25 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:shux="using:Snap.Hutao.UI.Xaml"
xmlns:shuxc="using:Snap.Hutao.UI.Xaml.Control"
+ xmlns:shuxcc="using:Snap.Hutao.UI.Xaml.Control.Card"
xmlns:shuxci="using:Snap.Hutao.UI.Xaml.Control.Image"
+ xmlns:shuxdc="using:Snap.Hutao.UI.Xaml.Data.Converter"
+ xmlns:shuxdcs="using:Snap.Hutao.UI.Xaml.Data.Converter.Specialized"
xmlns:shuxm="using:Snap.Hutao.UI.Xaml.Markup"
xmlns:shvcont="using:Snap.Hutao.View.Control"
- xmlns:shvconv="using:Snap.Hutao.View.Converter"
- xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvg="using:Snap.Hutao.ViewModel.GachaLog"
cw:Effects.Shadow="{ThemeResource CompatCardShadow}"
d:DataContext="{d:DesignInstance shvg:TypedWishSummary}"
mc:Ignorable="d">
-
-
+
-
+
@@ -183,7 +184,7 @@
-
- 0,1,0,0
24
-
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/AnnouncementPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/AnnouncementPage.xaml
index fd97945a..2510e884 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/AnnouncementPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/AnnouncementPage.xaml
@@ -13,11 +13,11 @@
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxba="using:Snap.Hutao.UI.Xaml.Behavior.Action"
xmlns:shuxc="using:Snap.Hutao.UI.Xaml.Control"
+ xmlns:shuxcc="using:Snap.Hutao.UI.Xaml.Control.Card"
xmlns:shuxci="using:Snap.Hutao.UI.Xaml.Control.Image"
xmlns:shuxm="using:Snap.Hutao.UI.Xaml.Markup"
xmlns:shuxma="using:Snap.Hutao.UI.Xaml.Media.Animation"
xmlns:shvco="using:Snap.Hutao.View.Control"
- xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvh="using:Snap.Hutao.ViewModel.Home"
d:DataContext="{d:DesignInstance shvh:AnnouncementViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
@@ -195,7 +195,7 @@
-
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml
index 03eec16c..81c7c842 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml
@@ -16,7 +16,8 @@
xmlns:shuxm="using:Snap.Hutao.UI.Xaml.Markup"
xmlns:shva="using:Snap.Hutao.ViewModel.AvatarProperty"
xmlns:shvcont="using:Snap.Hutao.View.Control"
- xmlns:shvconv="using:Snap.Hutao.View.Converter"
+ xmlns:shuxdc="using:Snap.Hutao.UI.Xaml.Data.Converter"
+ xmlns:shuxdcs="using:Snap.Hutao.UI.Xaml.Data.Converter.Specialized"
d:DataContext="{d:DesignInstance shva:AvatarPropertyViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
@@ -29,13 +30,13 @@
-
-
@@ -51,7 +52,7 @@
-
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
index 8ea27aff..5acb30b4 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
@@ -11,11 +11,11 @@
xmlns:shux="using:Snap.Hutao.UI.Xaml"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxc="using:Snap.Hutao.UI.Xaml.Control"
+ xmlns:shuxcc="using:Snap.Hutao.UI.Xaml.Control.Card"
xmlns:shuxci="using:Snap.Hutao.UI.Xaml.Control.Image"
xmlns:shuxcl="using:Snap.Hutao.UI.Xaml.Control.Layout"
xmlns:shuxm="using:Snap.Hutao.UI.Xaml.Markup"
xmlns:shvco="using:Snap.Hutao.View.Control"
- xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvcu="using:Snap.Hutao.ViewModel.Cultivation"
d:DataContext="{d:DesignInstance shvcu:CultivationViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
@@ -173,8 +173,8 @@
-
-
+
+
-
-
+
+
@@ -208,8 +208,8 @@
VerticalAlignment="Center"
Text="{Binding CountFormatted}"/>
-
-
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml
index 02348c6a..3ab515b1 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml
@@ -12,10 +12,10 @@
xmlns:shux="using:Snap.Hutao.UI.Xaml"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxc="using:Snap.Hutao.UI.Xaml.Control"
+ xmlns:shuxcc="using:Snap.Hutao.UI.Xaml.Control.Card"
xmlns:shuxci="using:Snap.Hutao.UI.Xaml.Control.Image"
xmlns:shuxm="using:Snap.Hutao.UI.Xaml.Markup"
xmlns:shvc="using:Snap.Hutao.View.Control"
- xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvd="using:Snap.Hutao.ViewModel.DailyNote"
d:DataContext="{d:DesignInstance shvd:DailyNoteViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
@@ -282,7 +282,7 @@
-
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/WikiAvatarPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/WikiAvatarPage.xaml
index 0e114750..aa152394 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/WikiAvatarPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/WikiAvatarPage.xaml
@@ -10,12 +10,12 @@
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxc="using:Snap.Hutao.UI.Xaml.Control"
xmlns:shuxca="using:Snap.Hutao.UI.Xaml.Control.AutoSuggestBox"
+ xmlns:shuxcc="using:Snap.Hutao.UI.Xaml.Control.Card"
xmlns:shuxci="using:Snap.Hutao.UI.Xaml.Control.Image"
xmlns:shuxct="using:Snap.Hutao.UI.Xaml.Control.TextBlock"
xmlns:shuxm="using:Snap.Hutao.UI.Xaml.Markup"
xmlns:shvcont="using:Snap.Hutao.View.Control"
xmlns:shvconv="using:Snap.Hutao.View.Converter"
- xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvw="using:Snap.Hutao.ViewModel.Wiki"
d:DataContext="{d:DesignInstance Type=shvw:WikiAvatarViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
@@ -132,33 +132,33 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -172,13 +172,13 @@
TextStyle="{StaticResource CaptionTextBlockStyle}"/>
-
-
+
+
-
-
+
+
@@ -228,8 +228,8 @@
-
-
+
+
-
-
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/WikiMonsterPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/WikiMonsterPage.xaml
index 3e7139d1..10cc5975 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/WikiMonsterPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/WikiMonsterPage.xaml
@@ -10,11 +10,11 @@
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxc="using:Snap.Hutao.UI.Xaml.Control"
+ xmlns:shuxcc="using:Snap.Hutao.UI.Xaml.Control.Card"
xmlns:shuxci="using:Snap.Hutao.UI.Xaml.Control.Image"
xmlns:shuxct="using:Snap.Hutao.UI.Xaml.Control.TextBlock"
xmlns:shuxm="using:Snap.Hutao.UI.Xaml.Markup"
xmlns:shvc="using:Snap.Hutao.View.Control"
- xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvw="using:Snap.Hutao.ViewModel.Wiki"
d:DataContext="{d:DesignInstance Type=shvw:WikiMonsterViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
@@ -57,21 +57,21 @@
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/WikiWeaponPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/WikiWeaponPage.xaml
index a441b272..47b80fd9 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/WikiWeaponPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/WikiWeaponPage.xaml
@@ -10,11 +10,11 @@
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxc="using:Snap.Hutao.UI.Xaml.Control"
xmlns:shuxca="using:Snap.Hutao.UI.Xaml.Control.AutoSuggestBox"
+ xmlns:shuxcc="using:Snap.Hutao.UI.Xaml.Control.Card"
xmlns:shuxci="using:Snap.Hutao.UI.Xaml.Control.Image"
xmlns:shuxct="using:Snap.Hutao.UI.Xaml.Control.TextBlock"
xmlns:shuxm="using:Snap.Hutao.UI.Xaml.Markup"
xmlns:shvc="using:Snap.Hutao.View.Control"
- xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvw="using:Snap.Hutao.ViewModel.Wiki"
d:DataContext="{d:DesignInstance Type=shvw:WikiWeaponViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
@@ -91,21 +91,21 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -123,15 +123,15 @@
-
-
+
+
-
-
+
+
@@ -145,8 +145,8 @@
TextStyle="{StaticResource CaptionTextBlockStyle}"/>
-
-
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Home/AnnouncementViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Home/AnnouncementViewModel.cs
index e78f73c1..8ff93298 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Home/AnnouncementViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Home/AnnouncementViewModel.cs
@@ -5,8 +5,8 @@ using Snap.Hutao.Core.Setting;
using Snap.Hutao.Service;
using Snap.Hutao.Service.Announcement;
using Snap.Hutao.Service.Hutao;
+using Snap.Hutao.UI.Xaml.Control.Card;
using Snap.Hutao.View.Card;
-using Snap.Hutao.View.Card.Primitive;
using Snap.Hutao.Web.Hoyolab.Hk4e.Common.Announcement;
using System.Collections.ObjectModel;