Procházet zdrojové kódy

feat: 适当修改本地 Mod 管理界面与操作逻辑

tangge233 před 2 roky
rodič
revize
ebfed4243b

+ 2 - 2
Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml

@@ -8,7 +8,8 @@
         <Grid x:Name="PanAllBack">
             <local:MyScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" x:Name="PanBack">
                 <StackPanel x:Name="PanMain" Margin="25,10,25,10" Grid.IsSharedSizeScope="True"> <!-- 若显示多选模块则为 92 -->
-                    <local:MyCard Grid.Row="0" Margin="0,15" x:Name="PanManage">
+                    <local:MySearchBox Margin="0,15" HintText="搜索 Mod 名称 / 描述 / 标签" x:Name="SearchBox" />
+                    <local:MyCard Grid.Row="0" Margin="0,0,0,15" x:Name="PanManage">
                         <Grid Margin="15,15,0,15" Height="35">
                             <Grid.ColumnDefinitions>
                                 <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
@@ -22,7 +23,6 @@
                             <local:MyButton x:Name="BtnManageCheck" Grid.Column="3" MinWidth="140" Text="检查 Mod" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" ToolTip="快速检查 Mod 的版本要求、重复、前置缺失等问题。&#xa;结果仅供参考,由于部分 Mod 标注的信息有误,可能并不准确。" Visibility="Collapsed" />
                         </Grid>
                     </local:MyCard>
-                    <local:MySearchBox Margin="0,0,0,15" HintText="搜索 Mod 名称 / 描述 / 标签" x:Name="SearchBox" />
                     <local:MyCard x:Name="PanUpdateListBack" VerticalAlignment="Top" Opacity="0" Margin="0,0,0,15" Title=" " MinHeight="40" CanSwap="True">
                         <StackPanel Margin="20,38,18,18" Name="PanUpdateList" VerticalAlignment="Top" />
                     </local:MyCard>

+ 16 - 5
Plain Craft Launcher 2/Pages/PageVersion/PageVersionMod.xaml.vb

@@ -312,16 +312,17 @@
     Private Sub ChangeAllSelected(Value As Boolean)
         AniControlEnabled += 1
         SelectedMods.Clear()
-        ChangeTargetListSeleted(PanUpdateList, Value)
-        ChangeTargetListSeleted(PanDisabledList, Value)
-        ChangeTargetListSeleted(PanUnavaliableList, Value)
-        ChangeTargetListSeleted(PanDefaultList, Value)
+        ChangeTargetListSeleted(PanUpdateListBack, PanUpdateList, Value)
+        ChangeTargetListSeleted(PanDisabledListBack, PanDisabledList, Value)
+        ChangeTargetListSeleted(PanUnavaliableListBack, PanUnavaliableList, Value)
+        ChangeTargetListSeleted(PanDefaultListBack, PanDefaultList, Value)
         AniControlEnabled -= 1
         '更新下边栏 UI
         RefreshBottomBar()
     End Sub
 
-    Private Sub ChangeTargetListSeleted(List As StackPanel, Value As Boolean)
+    Private Sub ChangeTargetListSeleted(Card As MyCard, List As StackPanel, Value As Boolean)
+        If Value.Equals(True) Then Card.IsSwaped = False
         For Each Item As MyLocalModItem In List.Children
             Item.Checked = Value
             If Value Then SelectedMods.Add(Item.Entry.RawFileName)
@@ -435,6 +436,16 @@
     ''' 记录正在进行 Mod 更新的 mods 文件夹路径。
     ''' </summary>
     Public Shared UpdatingVersions As New List(Of String)
+
+    Public Sub New()
+
+        ' 此调用是设计器所必需的。
+        InitializeComponent()
+
+        ' 在 InitializeComponent() 调用之后添加任何初始化。
+
+    End Sub
+
     Public Sub UpdateMods(ModList As IEnumerable(Of McMod))
         '更新前警告
         If Not Setup.Get("HintUpdateMod") Then