From a23043fb6d1a73a58c5e2a0457fc496afb68c39e Mon Sep 17 00:00:00 2001
From: DismissedLight <1686188646@qq.com>
Date: Thu, 10 Aug 2023 23:38:35 +0800
Subject: [PATCH] update controls style
---
src/Snap.Hutao/Snap.Hutao/App.xaml | 12 +++-
.../Extension/EnumerableExtension.cs | 5 ++
.../Snap.Hutao/View/Card/DailyNoteCard.xaml | 18 +++---
.../View/Control/BottomTextControl.xaml | 6 +-
.../View/Control/BottomTextControl.xaml.cs | 21 +-----
.../View/Control/DescParamComboBox.xaml | 6 +-
.../View/Control/DescParamComboBox.xaml.cs | 14 +---
.../View/Control/HutaoStatisticsCard.xaml | 64 ++++++-------------
.../Snap.Hutao/View/Control/ItemIcon.xaml | 5 +-
.../Control/LaunchGameResourceExpander.xaml | 14 ++--
.../Snap.Hutao/View/Control/SkillPivot.xaml | 9 +--
.../View/Control/StatisticsCard.xaml | 38 +++++------
...rolHelper.cs => FrameworkElementHelper.cs} | 2 +-
13 files changed, 84 insertions(+), 130 deletions(-)
rename src/Snap.Hutao/Snap.Hutao/View/Helper/{ControlHelper.cs => FrameworkElementHelper.cs} (93%)
diff --git a/src/Snap.Hutao/Snap.Hutao/App.xaml b/src/Snap.Hutao/Snap.Hutao/App.xaml
index 7295be9f..ee0bec1a 100644
--- a/src/Snap.Hutao/Snap.Hutao/App.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/App.xaml
@@ -56,6 +56,7 @@
+
@@ -103,6 +104,9 @@
+
+
+
@@ -132,8 +136,8 @@
-
+
+
@@ -494,6 +498,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs b/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs
index 46bfb50d..e18b653b 100644
--- a/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs
@@ -12,6 +12,11 @@ namespace Snap.Hutao.Extension;
[HighQuality]
internal static partial class EnumerableExtension
{
+ public static TElement? ElementAtOrLastOrDefault(this IEnumerable source, int index)
+ {
+ return source.ElementAtOrDefault(index) ?? source.LastOrDefault();
+ }
+
///
/// 如果传入集合不为空则原路返回,
/// 如果传入集合为空返回一个集合的空集
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/DailyNoteCard.xaml b/src/Snap.Hutao/Snap.Hutao/View/Card/DailyNoteCard.xaml
index 5868e050..6f7fa4f7 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Card/DailyNoteCard.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Card/DailyNoteCard.xaml
@@ -48,7 +48,7 @@
Text="{Binding Uid}"/>
-
+
@@ -73,7 +73,7 @@
-
+
-
+
@@ -116,7 +116,7 @@
-
+
-
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/BottomTextControl.xaml b/src/Snap.Hutao/Snap.Hutao/View/Control/BottomTextControl.xaml
index a871b38e..bac52a6d 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Control/BottomTextControl.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Control/BottomTextControl.xaml
@@ -7,13 +7,13 @@
mc:Ignorable="d">
-
-
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/BottomTextControl.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Control/BottomTextControl.xaml.cs
index 60e047af..7b812821 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Control/BottomTextControl.xaml.cs
+++ b/src/Snap.Hutao/Snap.Hutao/View/Control/BottomTextControl.xaml.cs
@@ -14,9 +14,9 @@ namespace Snap.Hutao.View.Control;
///
[HighQuality]
[ContentProperty(Name = nameof(TopContent))]
-[DependencyProperty("Text", typeof(string), "", nameof(OnTextChanged))]
-[DependencyProperty("TopContent", typeof(UIElement), default!, nameof(OnContentChanged))]
-[DependencyProperty("Fill", typeof(Brush), default!, nameof(OnFillChanged))]
+[DependencyProperty("Text", typeof(string), "")]
+[DependencyProperty("TopContent", typeof(UIElement), default!)]
+[DependencyProperty("Fill", typeof(Brush), default!)]
internal sealed partial class BottomTextControl : ContentControl
{
///
@@ -26,19 +26,4 @@ internal sealed partial class BottomTextControl : ContentControl
{
InitializeComponent();
}
-
- private static void OnTextChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
- {
- ((BottomTextControl)sender).TextHost.Text = (string)args.NewValue;
- }
-
- private static void OnContentChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
- {
- ((BottomTextControl)sender).ContentHost.Content = args.NewValue;
- }
-
- private static void OnFillChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
- {
- ((BottomTextControl)sender).BackgroundStack.Background = (Brush)args.NewValue;
- }
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/DescParamComboBox.xaml b/src/Snap.Hutao/Snap.Hutao/View/Control/DescParamComboBox.xaml
index 176ded13..1e58033f 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Control/DescParamComboBox.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Control/DescParamComboBox.xaml
@@ -16,8 +16,8 @@
@@ -28,7 +28,7 @@
-
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/DescParamComboBox.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Control/DescParamComboBox.xaml.cs
index cfee7ed0..addab035 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Control/DescParamComboBox.xaml.cs
+++ b/src/Snap.Hutao/Snap.Hutao/View/Control/DescParamComboBox.xaml.cs
@@ -13,6 +13,7 @@ namespace Snap.Hutao.View.Control;
///
[HighQuality]
[DependencyProperty("Source", typeof(List>), default!, nameof(OnSourceChanged))]
+[DependencyProperty("SelectedItem", typeof(LevelParameters), default!)]
[DependencyProperty("PreferredSelectedIndex", typeof(int), 0)]
internal sealed partial class DescParamComboBox : UserControl
{
@@ -26,23 +27,12 @@ internal sealed partial class DescParamComboBox : UserControl
private static void OnSourceChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
{
- // Some of the {x:Bind} feature is not working properly,
- // so we use this simple code behind approach to achieve selection function
if (sender is DescParamComboBox descParamComboBox)
{
if (args.NewValue != args.OldValue && args.NewValue is List> list)
{
- descParamComboBox.ItemHost.ItemsSource = list;
- descParamComboBox.ItemHost.SelectedIndex = Math.Min(descParamComboBox.PreferredSelectedIndex, list.Count - 1);
+ descParamComboBox.SelectedItem = list.ElementAtOrLastOrDefault(descParamComboBox.PreferredSelectedIndex);
}
}
}
-
- private void ItemHostSelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- if (sender is ComboBox { SelectedIndex: >= 0 } comboBox)
- {
- DetailsHost.ItemsSource = Source[comboBox.SelectedIndex]?.Parameters;
- }
- }
}
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsCard.xaml b/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsCard.xaml
index dc41e180..a8fa5e8f 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsCard.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsCard.xaml
@@ -10,6 +10,7 @@
xmlns:shcp="using:Snap.Hutao.Control.Panel"
xmlns:shvcont="using:Snap.Hutao.View.Control"
xmlns:shvg="using:Snap.Hutao.ViewModel.GachaLog"
+ xmlns:shvh="using:Snap.Hutao.View.Helper"
d:DataContext="{d:DesignInstance shvg:HutaoWishSummary}"
mc:Ignorable="d">
@@ -21,8 +22,7 @@
Style="{StaticResource BorderCardStyle}">
+
@@ -56,64 +57,37 @@
Margin="0,16,0,8"
Style="{StaticResource BaseTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewControlStatisticsCardUpText}"/>
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/ItemIcon.xaml b/src/Snap.Hutao/Snap.Hutao/View/Control/ItemIcon.xaml
index 08f17c3b..cf92fca4 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Control/ItemIcon.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Control/ItemIcon.xaml
@@ -6,9 +6,8 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shmmc="using:Snap.Hutao.Model.Metadata.Converter"
- xmlns:shvc="using:Snap.Hutao.View.Control"
- Width="80"
- Height="80"
+ xmlns:shvh="using:Snap.Hutao.View.Helper"
+ shvh:FrameworkElementHelper.SquareLength="80"
mc:Ignorable="d">
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/LaunchGameResourceExpander.xaml b/src/Snap.Hutao/Snap.Hutao/View/Control/LaunchGameResourceExpander.xaml
index 4947b339..503ea07e 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Control/LaunchGameResourceExpander.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Control/LaunchGameResourceExpander.xaml
@@ -4,8 +4,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:shwhshl="using:Snap.Hutao.Web.Hoyolab.SdkStatic.Hk4e.Launcher"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
+ d:DataContext="{d:DesignInstance shwhshl:Package}"
IsExpanded="True"
mc:Ignorable="d">
@@ -21,20 +23,20 @@
Grid.Row="1"
Margin="0,4,0,0"
Orientation="Horizontal">
-
+
-
+
-
+
-
+
-
+
-
+
-
0,0,16,0
- 0
-
@@ -28,10 +26,7 @@
-
+
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
+
+
+
+