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

@@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="编辑工具"
Width="560"
Height="560"
Height="620"
MinWidth="520"
WindowStartupLocation="CenterOwner">
<Grid Margin="18">
@@ -113,12 +113,30 @@
ToolTip="可执行文件或脚本启动时使用的工作目录,可留空。" />
<TextBlock Grid.Row="7" Text="快捷键" VerticalAlignment="Center" />
<TextBox x:Name="HotkeyTextBox"
Grid.Row="7"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="32"
ToolTip="格式示例Ctrl + Alt + T。第一版要求至少包含一个修饰键。" />
<Grid Grid.Row="7"
Grid.Column="1"
Margin="0,8,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox x:Name="HotkeyTextBox"
MinHeight="32"
ToolTip="格式示例Ctrl + Alt + T。可点击录入来捕获快捷键。" />
<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="8"
Grid.Column="1"
@@ -131,6 +149,32 @@
Margin="0,8,0,0"
ToolTip="仅启动该工具时触发 UAC工具箱自身不提权。" />
</StackPanel>
<TextBlock Grid.Row="9" Text="图标" VerticalAlignment="Center" />
<StackPanel Grid.Row="9"
Grid.Column="1"
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>
</ScrollViewer>