Files
personal-toolbox/src/PersonalToolbox/Views/ToolEditorWindow.xaml
home-PC 0047be65ca feat: 补齐工具箱剩余 MVP 能力
实现轻量图标系统、图标选择器、本地图标导入和关联图标缓存。

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

同时将配置数据版本升级到 2,并在导入和加载时拒绝更高版本配置,避免误读未来格式。
2026-05-27 14:58:41 +08:00

199 lines
9.3 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<Window x:Class="PersonalToolbox.Views.ToolEditorWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="编辑工具"
Width="560"
Height="620"
MinWidth="520"
WindowStartupLocation="CenterOwner">
<Grid Margin="18">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="112" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="类型" VerticalAlignment="Center" />
<TextBlock x:Name="TypeTextBlock"
Grid.Column="1"
MinHeight="32"
VerticalAlignment="Center"
ToolTip="工具类型由创建入口决定,用户侧只暴露系统、本地、网址和组合。" />
<TextBlock Grid.Row="1" Text="名称" VerticalAlignment="Center" />
<TextBox x:Name="NameTextBox"
Grid.Row="1"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="32"
ToolTip="卡片显示名称,建议简短清晰。" />
<TextBlock Grid.Row="2" Text="分类" VerticalAlignment="Center" />
<ComboBox x:Name="CategoryComboBox"
Grid.Row="2"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="32"
DisplayMemberPath="Name"
SelectedValuePath="Id"
ToolTip="工具只能属于一个一级分类。" />
<TextBlock Grid.Row="3" Text="说明" VerticalAlignment="Top" Margin="0,14,0,0" />
<TextBox x:Name="DescriptionTextBox"
Grid.Row="3"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="72"
TextWrapping="Wrap"
AcceptsReturn="True"
ToolTip="用于描述这个工具的用途,会显示在卡片上。" />
<TextBlock x:Name="TargetLabel"
Grid.Row="4"
Text="目标路径"
VerticalAlignment="Center" />
<Grid x:Name="TargetPanel"
Grid.Row="4"
Grid.Column="1"
Margin="0,8,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox x:Name="TargetTextBox"
MinHeight="32"
ToolTip="本地工具路径、系统工具启动目标或网址。" />
<Button Grid.Column="1"
Content="文件"
Width="64"
Margin="8,0,0,0"
ToolTip="选择本地程序、快捷方式、脚本或普通文件。"
Click="BrowseFileButton_OnClick" />
<Button Grid.Column="2"
Content="文件夹"
Width="72"
Margin="8,0,0,0"
ToolTip="选择一个文件夹作为本地工具。"
Click="BrowseFolderButton_OnClick" />
</Grid>
<TextBlock Grid.Row="5" Text="启动参数" VerticalAlignment="Center" />
<TextBox x:Name="ArgumentsTextBox"
Grid.Row="5"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="32"
ToolTip="传给可执行文件或脚本的参数,普通文件和文件夹通常不需要。" />
<TextBlock Grid.Row="6" Text="工作目录" VerticalAlignment="Center" />
<TextBox x:Name="WorkingDirectoryTextBox"
Grid.Row="6"
Grid.Column="1"
Margin="0,8,0,0"
MinHeight="32"
ToolTip="可执行文件或脚本启动时使用的工作目录,可留空。" />
<TextBlock Grid.Row="7" Text="快捷键" VerticalAlignment="Center" />
<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"
Margin="0,12,0,0">
<CheckBox x:Name="AutoRunCheckBox"
Content="工具箱启动时自动运行"
ToolTip="开启后会出现在设置页的自动运行列表中。" />
<CheckBox x:Name="RunAsAdminCheckBox"
Content="以管理员身份运行"
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>
<StackPanel Grid.Row="1"
Orientation="Horizontal"
HorizontalAlignment="Right"
Margin="0,14,0,0">
<Button Content="保存"
Width="88"
Margin="0,0,8,0"
IsDefault="True"
ToolTip="校验并保存工具设置。"
Click="SaveButton_OnClick" />
<Button Content="取消"
Width="88"
IsCancel="True"
ToolTip="放弃本次修改。"
Click="CancelButton_OnClick" />
</StackPanel>
</Grid>
</Window>