feat: 补齐工具箱剩余 MVP 能力

实现轻量图标系统、图标选择器、本地图标导入和关联图标缓存。

补齐外观设置、捕获式快捷键录入、卡片右键菜单、分类图标编辑,以及分类和卡片拖拽排序。

同时将配置数据版本升级到 2,并在导入和加载时拒绝更高版本配置,避免误读未来格式。
This commit is contained in:
2026-05-27 14:58:41 +08:00
parent 26a22eef1c
commit 0047be65ca
23 changed files with 1735 additions and 100 deletions

View File

@@ -25,6 +25,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="名称" VerticalAlignment="Center" />
@@ -54,12 +55,30 @@
ToolTip="描述这个组合会打开哪些环境或工具。" />
<TextBlock Grid.Row="2" Text="快捷键" VerticalAlignment="Center" />
<TextBox x:Name="HotkeyTextBox"
Grid.Row="2"
Grid.Column="1"
MinHeight="32"
Margin="0,8,16,0"
ToolTip="格式示例Ctrl + Alt + D。组合可被全局快捷键直接启动。" />
<Grid Grid.Row="2"
Grid.Column="1"
Margin="0,8,16,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox x:Name="HotkeyTextBox"
MinHeight="32"
ToolTip="格式示例Ctrl + Alt + D。可点击录入来捕获快捷键。" />
<Button Grid.Column="1"
Content="录入"
Width="64"
Margin="8,0,0,0"
ToolTip="打开快捷键捕获窗口。"
Click="CaptureHotkeyButton_OnClick" />
<Button Grid.Column="2"
Content="清除"
Width="64"
Margin="8,0,0,0"
ToolTip="清除当前快捷键。"
Click="ClearHotkeyButton_OnClick" />
</Grid>
<StackPanel Grid.Row="2"
Grid.Column="2"
@@ -78,6 +97,33 @@
<ComboBoxItem Content="失败后停止" Tag="Stop" />
</ComboBox>
</StackPanel>
<TextBlock Grid.Row="3" Text="图标" VerticalAlignment="Center" Margin="0,12,0,0" />
<StackPanel Grid.Row="3"
Grid.Column="1"
Grid.ColumnSpan="3"
Orientation="Horizontal"
Margin="0,12,0,0">
<Border Width="42"
Height="30"
CornerRadius="6"
Background="{StaticResource IconBackgroundBrush}">
<TextBlock x:Name="IconPreviewTextBlock"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontWeight="SemiBold"
Foreground="{StaticResource PrimaryBrush}" />
</Border>
<TextBlock x:Name="IconNameTextBlock"
Margin="10,0,0,0"
VerticalAlignment="Center"
Foreground="{StaticResource SecondaryTextBrush}" />
<Button Content="选择图标"
Width="88"
Margin="12,0,0,0"
ToolTip="从内置图标库选择,或导入本地图片/ico。"
Click="ChooseIconButton_OnClick" />
</StackPanel>
</Grid>
<Grid Grid.Row="1" Margin="0,16,0,0">