From 602b31c52da04765abc9c8e1bd0d03496b3d8eca Mon Sep 17 00:00:00 2001
From: Lightczx <1686188646@qq.com>
Date: Fri, 24 Nov 2023 11:51:46 +0800
Subject: [PATCH] restrict combobox size
---
.../Control/SizeRestrictedContentControl.cs | 47 +++++++++++++++++++
.../Model/Intrinsic/Frozen/IntrinsicFrozen.cs | 14 +++---
.../Snap.Hutao/Resource/Localization/SH.resx | 3 ++
.../Snap.Hutao/View/Card/LaunchGameCard.xaml | 21 +++++----
.../View/Control/DescParamComboBox.xaml | 13 +++--
.../Snap.Hutao/View/Page/AchievementPage.xaml | 15 +++---
.../Snap.Hutao/View/Page/CultivationPage.xaml | 16 ++++---
.../Snap.Hutao/View/Page/GachaLogPage.xaml | 15 +++---
.../Snap.Hutao/View/Page/LaunchGamePage.xaml | 42 +++++++++--------
.../Snap.Hutao/View/Page/SettingPage.xaml | 35 ++++++++------
.../Snap.Hutao/View/Page/TestPage.xaml | 13 ++---
11 files changed, 152 insertions(+), 82 deletions(-)
create mode 100644 src/Snap.Hutao/Snap.Hutao/Control/SizeRestrictedContentControl.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Control/SizeRestrictedContentControl.cs b/src/Snap.Hutao/Snap.Hutao/Control/SizeRestrictedContentControl.cs
new file mode 100644
index 00000000..48e89b61
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/Control/SizeRestrictedContentControl.cs
@@ -0,0 +1,47 @@
+// Copyright (c) DGP Studio. All rights reserved.
+// Licensed under the MIT license.
+
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Windows.Foundation;
+
+namespace Snap.Hutao.Control;
+
+[DependencyProperty("IsWidthRestricted", typeof(bool), true)]
+[DependencyProperty("IsHeightRestricted", typeof(bool), true)]
+internal sealed partial class SizeRestrictedContentControl : ContentControl
+{
+ private double minContentWidth;
+ private double minContentHeight;
+
+ protected override Size MeasureOverride(Size availableSize)
+ {
+ if (Content is FrameworkElement element)
+ {
+ element.Measure(availableSize);
+ Size contentDesiredSize = element.DesiredSize;
+
+ if (IsWidthRestricted)
+ {
+ if (contentDesiredSize.Width > minContentWidth)
+ {
+ minContentWidth = contentDesiredSize.Width;
+ }
+
+ element.MinWidth = minContentWidth;
+ }
+
+ if (IsHeightRestricted)
+ {
+ if (contentDesiredSize.Height > minContentHeight)
+ {
+ minContentHeight = contentDesiredSize.Height;
+ }
+
+ element.MinHeight = minContentHeight;
+ }
+ }
+
+ return base.MeasureOverride(availableSize);
+ }
+}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/Frozen/IntrinsicFrozen.cs b/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/Frozen/IntrinsicFrozen.cs
index 21a0946d..6963ff37 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/Frozen/IntrinsicFrozen.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Intrinsic/Frozen/IntrinsicFrozen.cs
@@ -14,32 +14,32 @@ internal static class IntrinsicFrozen
///
/// 所属地区
///
- public static readonly FrozenSet AssociationTypes = Enum.GetValues().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType().ToFrozenSet();
+ public static FrozenSet AssociationTypes { get; } = Enum.GetValues().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType().ToFrozenSet();
///
/// 武器类型
///
- public static readonly FrozenSet WeaponTypes = Enum.GetValues().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType().ToFrozenSet();
+ public static FrozenSet WeaponTypes { get; } = Enum.GetValues().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType().ToFrozenSet();
///
/// 物品类型
///
- public static readonly FrozenSet ItemQualities = Enum.GetValues().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType().ToFrozenSet();
+ public static FrozenSet ItemQualities { get; } = Enum.GetValues().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType().ToFrozenSet();
///
/// 身材类型
///
- public static readonly FrozenSet BodyTypes = Enum.GetValues().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType().ToFrozenSet();
+ public static FrozenSet BodyTypes { get; } = Enum.GetValues().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType().ToFrozenSet();
///
/// 战斗属性
///
- public static readonly FrozenSet FightProperties = Enum.GetValues().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType().ToFrozenSet();
+ public static FrozenSet FightProperties { get; } = Enum.GetValues().Select(e => e.GetLocalizedDescriptionOrDefault()).OfType().ToFrozenSet();
///
/// 元素名称
///
- public static readonly FrozenSet ElementNames = FrozenSet.ToFrozenSet(
+ public static FrozenSet ElementNames { get; } = FrozenSet.ToFrozenSet(
[
SH.ModelIntrinsicElementNameFire,
SH.ModelIntrinsicElementNameWater,
@@ -50,7 +50,7 @@ internal static class IntrinsicFrozen
SH.ModelIntrinsicElementNameRock,
]);
- public static readonly FrozenSet MaterialTypeDescriptions = FrozenSet.ToFrozenSet(
+ public static FrozenSet MaterialTypeDescriptions { get; } = FrozenSet.ToFrozenSet(
[
SH.ModelMetadataMaterialCharacterAndWeaponEnhancementMaterial,
SH.ModelMetadataMaterialCharacterEXPMaterial,
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
index 09a2dcdf..852a1459 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
@@ -2012,6 +2012,9 @@
分辨率
+
+ 快捷设置分辨率
+
将窗口创建为弹出窗口,不带框架
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/LaunchGameCard.xaml b/src/Snap.Hutao/Snap.Hutao/View/Card/LaunchGameCard.xaml
index 10e7d0ef..30c87e97 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Card/LaunchGameCard.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Card/LaunchGameCard.xaml
@@ -5,6 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
+ xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shvg="using:Snap.Hutao.ViewModel.Game"
@@ -60,14 +61,16 @@
Content="{StaticResource FontIconContentSetting}"
FontFamily="{StaticResource SymbolThemeFontFamily}"
ToolTipService.ToolTip="{shcm:ResourceString Name=ViewPageHomeLaunchGameSettingAction}"/>
-
+
+
+
-
+
\ 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 b3636856..7b6262a2 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Control/DescParamComboBox.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Control/DescParamComboBox.xaml
@@ -5,6 +5,7 @@
xmlns:cwc="using:CommunityToolkit.WinUI.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shmm="using:Snap.Hutao.Model.Metadata"
mc:Ignorable="d">
@@ -22,11 +23,13 @@
-
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/AchievementPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/AchievementPage.xaml
index 3de375ba..8ec0dd69 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/AchievementPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/AchievementPage.xaml
@@ -247,13 +247,14 @@
-
+
+
+
-
+
+
+
+
-
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/LaunchGamePage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/LaunchGamePage.xaml
index ffc86e3e..8d340d31 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/LaunchGamePage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/LaunchGamePage.xaml
@@ -171,13 +171,14 @@
-
+
+
+
@@ -217,11 +218,13 @@
-
+
+
+
@@ -247,13 +250,14 @@
-
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml
index 7492285c..cfb744f6 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml
@@ -192,19 +192,23 @@
Description="{shcm:ResourceString Name=ViewPageSettingApperanceLanguageDescription}"
Header="{shcm:ResourceString Name=ViewPageSettingApperanceLanguageHeader}"
HeaderIcon="{shcm:FontIcon Glyph=}">
-
+
+
+
-
+
+
+
@@ -240,13 +244,14 @@
Content="Alt"
IsChecked="{Binding HotKeyOptions.MouseClickRepeatForeverKeyCombination.ModifierHasAlt, Mode=TwoWay}"/>
-
+
+
+
-
+
+
+
-