Files
community/Ink Canvas/Windows/CustomIconWindow.xaml.cs
T
PrefacedCorg ef5377f85c feat(设置): 新增个性化设置页面并重构主题相关功能
重构主题和语言设置功能,将相关代码从主窗口迁移至新增的个性化设置页面
优化浮动工具栏图标选择逻辑,移除冗余代码
统一设置页面中开关控件的样式和行为
修复设置页面导航项的选择状态问题
2026-04-25 17:00:02 +08:00

60 lines
2.1 KiB
C#

using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;
namespace Ink_Canvas
{
/// <summary>
/// CustomIconWindow.xaml 的交互逻辑
/// </summary>
public partial class CustomIconWindow : Window
{
private MainWindow mainWindow;
public ObservableCollection<CustomFloatingBarIcon> CustomIcons { get; set; }
public CustomIconWindow(MainWindow owner)
{
InitializeComponent();
mainWindow = owner;
// 从主窗口的设置获取自定义图标列表
CustomIcons = new ObservableCollection<CustomFloatingBarIcon>(MainWindow.Settings.Appearance.CustomFloatingBarImgs);
CustomIconsListView.ItemsSource = CustomIcons;
}
private void DeleteCustomIcon_Click(object sender, RoutedEventArgs e)
{
if (sender is Button button && button.Tag is CustomFloatingBarIcon icon)
{
// 从列表中移除图标
CustomIcons.Remove(icon);
// 更新主窗口的设置
MainWindow.Settings.Appearance.CustomFloatingBarImgs.Clear();
foreach (var customIcon in CustomIcons)
{
MainWindow.Settings.Appearance.CustomFloatingBarImgs.Add(customIcon);
}
// 如果当前选中的是被删除的图标,重置为默认图标
if (MainWindow.Settings.Appearance.FloatingBarImg >= 12 &&
MainWindow.Settings.Appearance.FloatingBarImg - 12 >= MainWindow.Settings.Appearance.CustomFloatingBarImgs.Count)
{
MainWindow.Settings.Appearance.FloatingBarImg = 0;
mainWindow.UpdateFloatingBarIcon();
}
// 更新ComboBox
mainWindow.UpdateCustomIconsInComboBox();
// 保存设置
MainWindow.SaveSettingsToFile();
}
}
private void CloseButton_Click(object sender, RoutedEventArgs e)
{
Close();
}
}
}