From 62b85a4bbd526762cab0a6b1c1cc701535adf47f Mon Sep 17 00:00:00 2001
From: CJKmkp <2564608840@qq.com>
Date: Sat, 10 Jan 2026 23:00:52 +0800
Subject: [PATCH 1/2] =?UTF-8?q?add:=E6=96=B0=E8=AE=BE=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../SettingsViews/AboutPanel.xaml | 20 +-
.../SettingsViews/AboutPanel.xaml.cs | 211 +++++++++++++++---
2 files changed, 189 insertions(+), 42 deletions(-)
diff --git a/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml b/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml
index a74ffefa..a2505e31 100644
--- a/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml
+++ b/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml
@@ -73,8 +73,8 @@
-
-
+
+
@@ -84,8 +84,8 @@
-
-
+
+
@@ -113,13 +113,13 @@
-
+
-
+
@@ -128,7 +128,7 @@
-
+
@@ -146,7 +146,7 @@
-
+
@@ -164,7 +164,7 @@
-
+
@@ -181,7 +181,7 @@
-
+
diff --git a/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml.cs b/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml.cs
index ec925479..8cf4bdfb 100644
--- a/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml.cs
+++ b/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml.cs
@@ -1,7 +1,9 @@
using iNKORE.UI.WPF.Helpers;
+using Ink_Canvas.Helpers;
using OSVersionExtension;
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.IO;
using System.Management;
using System.Reflection;
@@ -14,6 +16,7 @@ using System.Windows.Controls.Primitives;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
+using Microsoft.Win32;
namespace Ink_Canvas.Windows.SettingsViews
{
@@ -42,24 +45,78 @@ namespace Ink_Canvas.Windows.SettingsViews
CopyrightBannerImage.Visibility = Visibility.Collapsed;
}
- // 关于页面构建时间
- var buildTime = FileBuildTimeHelper.GetBuildDateTime(Assembly.GetExecutingAssembly());
- if (buildTime != null)
+ try
{
- var bt = ((DateTimeOffset)buildTime).LocalDateTime;
- var m = bt.Month.ToString().PadLeft(2, '0');
- var d = bt.Day.ToString().PadLeft(2, '0');
- var h = bt.Hour.ToString().PadLeft(2, '0');
- var min = bt.Minute.ToString().PadLeft(2, '0');
- var s = bt.Second.ToString().PadLeft(2, '0');
- AboutBuildTime.Text =
- $"build-{bt.Year}-{m}-{d}-{h}:{min}:{s}";
+ var version = Assembly.GetExecutingAssembly().GetName().Version;
+ AboutAppVersion.Text = $"InkCanvasForClass v{version}";
+ }
+ catch (Exception ex)
+ {
+ AboutAppVersion.Text = "InkCanvasForClass v未知";
+ System.Diagnostics.Debug.WriteLine($"获取软件版本失败: {ex.Message}");
+ }
+
+ try
+ {
+ string deviceId = DeviceIdentifier.GetDeviceId();
+ AboutDeviceID.Text = deviceId;
+ }
+ catch (Exception ex)
+ {
+ AboutDeviceID.Text = "获取失败";
+ System.Diagnostics.Debug.WriteLine($"获取设备ID失败: {ex.Message}");
+ }
+
+ try
+ {
+ var copyright = Assembly.GetExecutingAssembly().GetCustomAttribute();
+ if (copyright != null && !string.IsNullOrEmpty(copyright.Copyright))
+ {
+ var copyrightText = copyright.Copyright;
+ AboutCopyright.Text = copyrightText;
+ AboutBottomCopyright.Text = copyrightText.Replace("Copyright ©", "© Copyright") + " 所有";
+ }
+ else
+ {
+ AboutCopyright.Text = "© Copyright 2024 Dubi906w 所有";
+ AboutBottomCopyright.Text = "© Copyright 2024 Dubi906w(Doubx690i/kriastans) 所有";
+ }
+ }
+ catch (Exception ex)
+ {
+ AboutCopyright.Text = "© Copyright 2024 Dubi906w 所有";
+ AboutBottomCopyright.Text = "© Copyright 2024 Dubi906w(Doubx690i/kriastans) 所有";
+ System.Diagnostics.Debug.WriteLine($"获取版权信息失败: {ex.Message}");
+ }
+
+ try
+ {
+ var assembly = Assembly.GetExecutingAssembly();
+ var filePath = assembly.Location;
+
+ if (File.Exists(filePath))
+ {
+ var bt = File.GetCreationTime(filePath);
+ var m = bt.Month.ToString().PadLeft(2, '0');
+ var d = bt.Day.ToString().PadLeft(2, '0');
+ var h = bt.Hour.ToString().PadLeft(2, '0');
+ var min = bt.Minute.ToString().PadLeft(2, '0');
+ var s = bt.Second.ToString().PadLeft(2, '0');
+ AboutBuildTime.Text = $"{bt.Year}-{m}-{d} {h}:{min}:{s}";
+ }
+ else
+ {
+ AboutBuildTime.Text = "获取失败";
+ }
+ }
+ catch (Exception ex)
+ {
+ AboutBuildTime.Text = "获取失败";
+ System.Diagnostics.Debug.WriteLine($"获取构建时间失败: {ex.Message}");
}
- // 关于页面系统版本
AboutSystemVersion.Text = $"{OSVersion.GetOperatingSystem()} {OSVersion.GetOSVersion().Version}";
- // 关于页面触摸设备
var _t_touch = new Thread(() =>
{
var touchcount = TouchTabletDetectHelper.GetTouchTabletDevices().Count;
@@ -68,6 +125,29 @@ namespace Ink_Canvas.Windows.SettingsViews
AboutTouchTabletText.Text = $"{touchcount}个设备,{(support ? "支持触摸设备" : "无触摸支持")}");
});
_t_touch.Start();
+
+ CheckUpdateStatus();
+ }
+
+ private void CheckUpdateStatus()
+ {
+ try
+ {
+ var mainWindow = Application.Current.MainWindow as MainWindow;
+ if (mainWindow != null)
+ {
+ var field = typeof(MainWindow).GetField("AvailableLatestVersion", BindingFlags.NonPublic | BindingFlags.Instance);
+ if (field != null)
+ {
+ var availableVersion = field.GetValue(mainWindow) as string;
+ if (!string.IsNullOrEmpty(availableVersion))
+ {
+ UpdateAvailableIcon.Visibility = Visibility.Visible;
+ }
+ }
+ }
+ }
+ catch { }
}
public static class TouchTabletDetectHelper
@@ -135,30 +215,48 @@ namespace Ink_Canvas.Windows.SettingsViews
public static DateTimeOffset? GetBuildDateTime(Assembly assembly)
{
- var path = assembly.Location;
- if (File.Exists(path))
+ try
{
- var buffer = new byte[Math.Max(Marshal.SizeOf(typeof(_IMAGE_FILE_HEADER)), 4)];
- using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
+ var path = assembly.Location;
+ if (string.IsNullOrEmpty(path) || !File.Exists(path))
{
+ return null;
+ }
+
+ using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
+ {
+ var peHeader = new byte[4];
fileStream.Position = 0x3C;
- fileStream.Read(buffer, 0, 4);
- fileStream.Position = BitConverter.ToUInt32(buffer, 0); // COFF header offset
- fileStream.Read(buffer, 0, 4); // "PE\0\0"
- fileStream.Read(buffer, 0, buffer.Length);
- }
- var pinnedBuffer = GCHandle.Alloc(buffer, GCHandleType.Pinned);
- try
- {
- var coffHeader = (_IMAGE_FILE_HEADER)Marshal.PtrToStructure(pinnedBuffer.AddrOfPinnedObject(), typeof(_IMAGE_FILE_HEADER));
- return DateTimeOffset.FromUnixTimeSeconds(coffHeader.TimeDateStamp);
- }
- finally
- {
- pinnedBuffer.Free();
+ fileStream.Read(peHeader, 0, 4);
+ var peHeaderOffset = BitConverter.ToUInt32(peHeader, 0);
+
+ fileStream.Position = peHeaderOffset;
+ var signature = new byte[4];
+ fileStream.Read(signature, 0, 4);
+
+ if (signature[0] != 0x50 || signature[1] != 0x45 || signature[2] != 0x00 || signature[3] != 0x00)
+ {
+ return null;
+ }
+
+ var fileHeader = new byte[Marshal.SizeOf(typeof(_IMAGE_FILE_HEADER))];
+ fileStream.Read(fileHeader, 0, fileHeader.Length);
+
+ var pinnedBuffer = GCHandle.Alloc(fileHeader, GCHandleType.Pinned);
+ try
+ {
+ var coffHeader = (_IMAGE_FILE_HEADER)Marshal.PtrToStructure(pinnedBuffer.AddrOfPinnedObject(), typeof(_IMAGE_FILE_HEADER));
+ var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
+ var buildTime = epoch.AddSeconds(coffHeader.TimeDateStamp);
+ return new DateTimeOffset(buildTime.ToLocalTime());
+ }
+ finally
+ {
+ pinnedBuffer.Free();
+ }
}
}
- else
+ catch
{
return null;
}
@@ -260,6 +358,55 @@ namespace Ink_Canvas.Windows.SettingsViews
((Border)border).Background = new SolidColorBrush(Color.FromRgb(138, 138, 138));
}
+
+ private void LinkOfficialWebsite_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
+ {
+ try
+ {
+ Process.Start(new ProcessStartInfo
+ {
+ FileName = "https://inkcanvasforclass.github.io",
+ UseShellExecute = true
+ });
+ }
+ catch (Exception ex)
+ {
+ System.Diagnostics.Debug.WriteLine($"打开官方网站失败: {ex.Message}");
+ }
+ }
+
+ private void LinkGithubRepo_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
+ {
+ try
+ {
+ Process.Start(new ProcessStartInfo
+ {
+ FileName = "https://github.com/InkCanvasForClass/community",
+ UseShellExecute = true
+ });
+ }
+ catch (Exception ex)
+ {
+ System.Diagnostics.Debug.WriteLine($"打开GitHub仓库失败: {ex.Message}");
+ }
+ }
+
+ private void LinkContributors_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
+ {
+ try
+ {
+ Process.Start(new ProcessStartInfo
+ {
+ FileName = "https://github.com/InkCanvasForClass/community#贡献者",
+ UseShellExecute = true
+ });
+ }
+ catch (Exception ex)
+ {
+ System.Diagnostics.Debug.WriteLine($"打开贡献者名单失败: {ex.Message}");
+ }
+ }
+
///
/// 应用主题
///
From fc89dce7c2768cb484577b207580a8b7febba573 Mon Sep 17 00:00:00 2001
From: CJKmkp <2564608840@qq.com>
Date: Sat, 10 Jan 2026 23:06:27 +0800
Subject: [PATCH 2/2] =?UTF-8?q?add:=E6=96=B0=E8=AE=BE=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../SettingsViews/AboutPanel.xaml.cs | 89 +++++++++++++++----
.../SettingsViews/SearchPanel.xaml.cs | 7 +-
.../Windows/SettingsViews/SettingsWindow.xaml | 11 +--
.../SettingsViews/SettingsWindow.xaml.cs | 53 ++++-------
4 files changed, 95 insertions(+), 65 deletions(-)
diff --git a/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml.cs b/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml.cs
index 8cf4bdfb..168fc706 100644
--- a/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml.cs
+++ b/Ink Canvas/Windows/SettingsViews/SettingsViews/AboutPanel.xaml.cs
@@ -119,10 +119,36 @@ namespace Ink_Canvas.Windows.SettingsViews
var _t_touch = new Thread(() =>
{
- var touchcount = TouchTabletDetectHelper.GetTouchTabletDevices().Count;
- var support = TouchTabletDetectHelper.IsTouchEnabled();
- Dispatcher.BeginInvoke(() =>
- AboutTouchTabletText.Text = $"{touchcount}个设备,{(support ? "支持触摸设备" : "无触摸支持")}");
+ try
+ {
+ var support = TouchTabletDetectHelper.IsTouchEnabled();
+ var touchcount = TouchTabletDetectHelper.GetTouchTabletDevices().Count;
+
+ Dispatcher.BeginInvoke(() =>
+ {
+ if (support)
+ {
+ if (touchcount > 0)
+ {
+ AboutTouchTabletText.Text = $"{touchcount}个设备,支持触摸设备";
+ }
+ else
+ {
+ AboutTouchTabletText.Text = "支持触摸设备";
+ }
+ }
+ else
+ {
+ AboutTouchTabletText.Text = "无触摸支持";
+ }
+ });
+ }
+ catch (Exception ex)
+ {
+ Dispatcher.BeginInvoke(() =>
+ AboutTouchTabletText.Text = "检测失败");
+ System.Diagnostics.Debug.WriteLine($"检测触摸设备失败: {ex.Message}");
+ }
});
_t_touch.Start();
@@ -180,22 +206,51 @@ namespace Ink_Canvas.Windows.SettingsViews
{
List devices = new List();
- ManagementObjectCollection collection;
- using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_PnPEntity"))
- collection = searcher.Get();
-
- foreach (var device in collection)
+ try
{
- var name = new StringBuilder((string)device.GetPropertyValue("Name")).ToString();
- if (!name.Contains("Pentablet")) continue;
- devices.Add(new USBDeviceInfo(
- (string)device.GetPropertyValue("DeviceID"),
- (string)device.GetPropertyValue("PNPDeviceID"),
- (string)device.GetPropertyValue("Description")
- ));
+ ManagementObjectCollection collection;
+ using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_PnPEntity"))
+ collection = searcher.Get();
+
+ foreach (var device in collection)
+ {
+ try
+ {
+ var name = device.GetPropertyValue("Name")?.ToString() ?? "";
+ var description = device.GetPropertyValue("Description")?.ToString() ?? "";
+
+ if (string.IsNullOrEmpty(name)) continue;
+
+ var nameLower = name.ToLower();
+ var descLower = description.ToLower();
+
+ if (nameLower.Contains("pentablet") ||
+ nameLower.Contains("tablet") ||
+ nameLower.Contains("touch") ||
+ nameLower.Contains("digitizer") ||
+ descLower.Contains("touch") ||
+ descLower.Contains("digitizer"))
+ {
+ devices.Add(new USBDeviceInfo(
+ device.GetPropertyValue("DeviceID")?.ToString() ?? "",
+ device.GetPropertyValue("PNPDeviceID")?.ToString() ?? "",
+ description
+ ));
+ }
+ }
+ catch
+ {
+ continue;
+ }
+ }
+
+ collection.Dispose();
+ }
+ catch (Exception ex)
+ {
+ System.Diagnostics.Debug.WriteLine($"获取触摸设备列表失败: {ex.Message}");
}
- collection.Dispose();
return devices;
}
}
diff --git a/Ink Canvas/Windows/SettingsViews/SettingsViews/SearchPanel.xaml.cs b/Ink Canvas/Windows/SettingsViews/SettingsViews/SearchPanel.xaml.cs
index 89556004..a54b7352 100644
--- a/Ink Canvas/Windows/SettingsViews/SettingsViews/SearchPanel.xaml.cs
+++ b/Ink Canvas/Windows/SettingsViews/SettingsViews/SearchPanel.xaml.cs
@@ -71,15 +71,12 @@ namespace Ink_Canvas.Windows.SettingsViews
// 随机点名
new SettingItem { Title = "随机点名", Category = "随机点名", ItemName = "LuckyRandomItem", Type = SettingItemType.Category },
- // 存储空间
- new SettingItem { Title = "存储空间", Category = "存储空间", ItemName = "StorageItem", Type = SettingItemType.Category },
+ // 高级选项
+ new SettingItem { Title = "高级选项", Category = "高级选项", ItemName = "AdvancedItem", Type = SettingItemType.Category },
// 截图和屏幕捕捉
new SettingItem { Title = "截图和屏幕捕捉", Category = "截图和屏幕捕捉", ItemName = "SnapshotItem", Type = SettingItemType.Category },
- // 高级选项
- new SettingItem { Title = "高级选项", Category = "高级选项", ItemName = "AdvancedItem", Type = SettingItemType.Category },
-
// 关于
new SettingItem { Title = "关于 InkCanvasForClass", Category = "关于", ItemName = "AboutItem", Type = SettingItemType.Category },
};
diff --git a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml
index a7a0a7d0..ce0016f4 100644
--- a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml
+++ b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml
@@ -796,9 +796,9 @@
-
-
-
+
+
+
@@ -806,11 +806,6 @@
-
-
-
-
-
diff --git a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs
index 67ec7f3d..aa2cd8c0 100644
--- a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs
+++ b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs
@@ -135,9 +135,9 @@ namespace Ink_Canvas.Windows
SidebarItems.Add(new SidebarItem()
{
Type = SidebarItemType.Item,
- Title = "存储空间",
- Name = "StorageItem",
- IconSource = FindResource("StorageIcon") as DrawingImage,
+ Title = "高级选项",
+ Name = "AdvancedItem",
+ IconSource = FindResource("AdvancedIcon") as DrawingImage,
Selected = false,
});
SidebarItems.Add(new SidebarItem()
@@ -153,14 +153,6 @@ namespace Ink_Canvas.Windows
Type = SidebarItemType.Separator
});
SidebarItems.Add(new SidebarItem()
- {
- Type = SidebarItemType.Item,
- Title = "高级选项",
- Name = "AdvancedItem",
- IconSource = FindResource("AdvancedIcon") as DrawingImage,
- Selected = false,
- });
- SidebarItems.Add(new SidebarItem()
{
Type = SidebarItemType.Item,
Title = "关于 InkCanvasForClass",
@@ -180,9 +172,8 @@ namespace Ink_Canvas.Windows
AutomationPane,
PowerPointPane,
LuckyRandomPane,
- StoragePane,
- SnapshotPane,
- AdvancedPane
+ AdvancedPane,
+ SnapshotPane
};
SettingsPaneScrollViewers = new ScrollViewer[] {
@@ -197,9 +188,8 @@ namespace Ink_Canvas.Windows
AutomationPanel.ScrollViewerEx,
PowerPointPanel.ScrollViewerEx,
LuckyRandomPanel.ScrollViewerEx,
- StoragePanel.ScrollViewerEx,
- SnapshotPanel.ScrollViewerEx,
- AdvancedPanel.ScrollViewerEx
+ AdvancedPanel.ScrollViewerEx,
+ SnapshotPanel.ScrollViewerEx
};
SettingsPaneTitles = new string[] {
@@ -214,9 +204,8 @@ namespace Ink_Canvas.Windows
"自动化",
"PowerPoint",
"幸运随机",
- "存储",
- "截图",
- "高级"
+ "高级",
+ "截图"
};
SettingsPaneNames = new string[] {
@@ -231,9 +220,8 @@ namespace Ink_Canvas.Windows
"AutomationItem",
"PowerPointItem",
"LuckyRandomItem",
- "StorageItem",
- "SnapshotItem",
- "AdvancedItem"
+ "AdvancedItem",
+ "SnapshotItem"
};
SettingsAboutPanel.IsTopBarNeedShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0.25;
@@ -267,12 +255,10 @@ namespace Ink_Canvas.Windows
CrashActionPanel.IsTopBarNeedNoShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0;
LuckyRandomPanel.IsTopBarNeedShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0.25;
LuckyRandomPanel.IsTopBarNeedNoShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0;
- StoragePanel.IsTopBarNeedShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0.25;
- StoragePanel.IsTopBarNeedNoShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0;
- SnapshotPanel.IsTopBarNeedShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0.25;
- SnapshotPanel.IsTopBarNeedNoShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0;
AdvancedPanel.IsTopBarNeedShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0.25;
AdvancedPanel.IsTopBarNeedNoShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0;
+ SnapshotPanel.IsTopBarNeedShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0.25;
+ SnapshotPanel.IsTopBarNeedNoShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0;
_selectedSidebarItemName = "StartupItem";
@@ -323,8 +309,8 @@ namespace Ink_Canvas.Windows
{
StartupPanel, CanvasAndInkPanel, GesturesPanel, InkRecognitionPanel,
ThemePanel, ShortcutsPanel, CrashActionPanel, PowerPointPanel,
- AutomationPanel, LuckyRandomPanel, StoragePanel, SnapshotPanel,
- AdvancedPanel, SettingsAboutPanel, AppearancePanel, SearchPanelControl
+ AutomationPanel, LuckyRandomPanel, AdvancedPanel, SnapshotPanel,
+ SettingsAboutPanel, AppearancePanel, SearchPanelControl
};
foreach (var panel in panels)
@@ -766,9 +752,8 @@ namespace Ink_Canvas.Windows
PowerPointPanel,
AutomationPanel,
LuckyRandomPanel,
- StoragePanel,
- SnapshotPanel,
AdvancedPanel,
+ SnapshotPanel,
SettingsAboutPanel,
AppearancePanel
};
@@ -960,9 +945,8 @@ namespace Ink_Canvas.Windows
{ "AutomationItem", AutomationPanel },
{ "PowerPointItem", PowerPointPanel },
{ "LuckyRandomItem", LuckyRandomPanel },
- { "StorageItem", StoragePanel },
- { "SnapshotItem", SnapshotPanel },
{ "AdvancedItem", AdvancedPanel },
+ { "SnapshotItem", SnapshotPanel },
{ "AppearanceItem", AppearancePanel }
};
@@ -978,9 +962,8 @@ namespace Ink_Canvas.Windows
if (AutomationPane != null) AutomationPane.Visibility = _selectedSidebarItemName == "AutomationItem" ? Visibility.Visible : Visibility.Collapsed;
if (PowerPointPane != null) PowerPointPane.Visibility = _selectedSidebarItemName == "PowerPointItem" ? Visibility.Visible : Visibility.Collapsed;
if (LuckyRandomPane != null) LuckyRandomPane.Visibility = _selectedSidebarItemName == "LuckyRandomItem" ? Visibility.Visible : Visibility.Collapsed;
- if (StoragePane != null) StoragePane.Visibility = _selectedSidebarItemName == "StorageItem" ? Visibility.Visible : Visibility.Collapsed;
- if (SnapshotPane != null) SnapshotPane.Visibility = _selectedSidebarItemName == "SnapshotItem" ? Visibility.Visible : Visibility.Collapsed;
if (AdvancedPane != null) AdvancedPane.Visibility = _selectedSidebarItemName == "AdvancedItem" ? Visibility.Visible : Visibility.Collapsed;
+ if (SnapshotPane != null) SnapshotPane.Visibility = _selectedSidebarItemName == "SnapshotItem" ? Visibility.Visible : Visibility.Collapsed;
// 为新显示的面板应用主题(延迟执行,确保面板已完全显示)
if (panelMappings.ContainsKey(_selectedSidebarItemName))