diff --git a/Ink Canvas/Resources/Cursors/close-hand-cursor.cur b/Ink Canvas/Resources/Cursors/close-hand-cursor.cur
new file mode 100644
index 00000000..f8085925
Binary files /dev/null and b/Ink Canvas/Resources/Cursors/close-hand-cursor.cur differ
diff --git a/Ink Canvas/Resources/Cursors/cursor-move.cur b/Ink Canvas/Resources/Cursors/cursor-move.cur
new file mode 100644
index 00000000..168593ea
Binary files /dev/null and b/Ink Canvas/Resources/Cursors/cursor-move.cur differ
diff --git a/Ink Canvas/Resources/Cursors/cursor-resize-lr.cur b/Ink Canvas/Resources/Cursors/cursor-resize-lr.cur
new file mode 100644
index 00000000..a29801b8
Binary files /dev/null and b/Ink Canvas/Resources/Cursors/cursor-resize-lr.cur differ
diff --git a/Ink Canvas/Resources/Cursors/cursor-resize-lt-rb.cur b/Ink Canvas/Resources/Cursors/cursor-resize-lt-rb.cur
new file mode 100644
index 00000000..01c3e194
Binary files /dev/null and b/Ink Canvas/Resources/Cursors/cursor-resize-lt-rb.cur differ
diff --git a/Ink Canvas/Resources/Cursors/cursor-resize-rt-lb.cur b/Ink Canvas/Resources/Cursors/cursor-resize-rt-lb.cur
new file mode 100644
index 00000000..a0e31268
Binary files /dev/null and b/Ink Canvas/Resources/Cursors/cursor-resize-rt-lb.cur differ
diff --git a/Ink Canvas/Resources/Cursors/cursor-resize-tb.cur b/Ink Canvas/Resources/Cursors/cursor-resize-tb.cur
new file mode 100644
index 00000000..b0649957
Binary files /dev/null and b/Ink Canvas/Resources/Cursors/cursor-resize-tb.cur differ
diff --git a/Ink Canvas/Resources/Cursors/open-hand-cursor.cur b/Ink Canvas/Resources/Cursors/open-hand-cursor.cur
new file mode 100644
index 00000000..baa77795
Binary files /dev/null and b/Ink Canvas/Resources/Cursors/open-hand-cursor.cur differ
diff --git a/Ink Canvas/Resources/GeometryIcons.xaml b/Ink Canvas/Resources/GeometryIcons.xaml
new file mode 100644
index 00000000..919eb517
--- /dev/null
+++ b/Ink Canvas/Resources/GeometryIcons.xaml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Ink Canvas/Resources/ICCConfiguration.cs b/Ink Canvas/Resources/ICCConfiguration.cs
new file mode 100644
index 00000000..5a866e0d
--- /dev/null
+++ b/Ink Canvas/Resources/ICCConfiguration.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media;
+
+namespace Ink_Canvas.Resources.ICCConfiguration {
+ public enum InitialPositionTypes {
+ TopLeft, TopRight, BottomLeft, BottomRight, TopCenter, BottomCenter, Custom
+ }
+ public enum ElementCornerRadiusTypes {
+ SuperEllipse, Circle, Custom, None
+ }
+ public class NearSnapAreaSize {
+ public double[] TopLeft { get; set; } = {24,24};
+ public double[] TopRight { get; set; } = {24,24};
+ public double[] BottomLeft { get; set; } = {24,24};
+ public double[] BottomRight { get; set; } = {24,24};
+ public double TopCenter { get; set; } = 24;
+ public double BottomCenter { get; set; } = 24;
+ }
+ public class ICCFloatingBarConfiguration {
+ public bool SemiTransparent { get; set; } = false;
+ public bool NearSnap { get; set; } = true;
+ public InitialPositionTypes InitialPosition { get; set; } = InitialPositionTypes.BottomCenter;
+ public Point InitialPositionPoint { get; set; } = new Point(0, 0);
+ public double ElementCornerRadiusValue = 0;
+ public ElementCornerRadiusTypes ElementCornerRadiusType { get; set; } = ElementCornerRadiusTypes.SuperEllipse;
+
+ public bool ParallaxEffect { get; set; } = true;
+ public bool MiniMode { get; set; } = false;
+ public Color ClearButtonColor { get; set; } = Color.FromRgb(224, 27, 36);
+ public Color ClearButtonPressColor { get; set; } = Color.FromRgb(254, 226, 226);
+ public Color ToolButtonSelectedBgColor { get; set; } = Color.FromRgb(37, 99, 235);
+ public double MovingLimitationNoSnap { get; set; } = 12;
+ public double MovingLimitationSnapped { get; set; } = 24;
+
+ public NearSnapAreaSize NearSnapAreaSize { get; set; } = new NearSnapAreaSize() {
+ TopLeft = new double[] { 24, 24 },
+ TopRight = new double[] { 24, 24 },
+ BottomLeft = new double[] { 24, 24 },
+ BottomRight = new double[] { 24, 24 },
+ };
+
+ public string[] ToolBarItemsInCursorMode { get; set; } = new string[] {
+ "Cursor", "Pen", "Clear", "Separator", "Whiteboard", "Gesture", "Menu", "Fold"
+ };
+ public string[] ToolBarItemsInMiniMode { get; set; } = new string[] {
+ "Cursor", "Pen", "Clear"
+ };
+ public string[] ToolBarItemsInAnnotationMode { get; set; } = new string[] {
+ "Cursor", "Pen", "Clear", "Separator", "Eraser", "ShapeDrawing", "Select", "Separator", "Undo", "Redo", "Separator", "Whiteboard", "Gesture", "Menu", "Fold"
+ };
+ }
+
+ public class ICCConfiguration {
+ public ICCFloatingBarConfiguration FloatingBar { get; set; } = new ICCFloatingBarConfiguration();
+ }
+}
diff --git a/Ink Canvas/Resources/Icons-png/classic-icons/desktop-folder.png b/Ink Canvas/Resources/Icons-png/classic-icons/desktop-folder.png
new file mode 100644
index 00000000..66291766
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/classic-icons/desktop-folder.png differ
diff --git a/Ink Canvas/Resources/Icons-png/classic-icons/desktop-small-icon.png b/Ink Canvas/Resources/Icons-png/classic-icons/desktop-small-icon.png
new file mode 100644
index 00000000..4f6235ef
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/classic-icons/desktop-small-icon.png differ
diff --git a/Ink Canvas/Resources/Icons-png/classic-icons/disk-drive.png b/Ink Canvas/Resources/Icons-png/classic-icons/disk-drive.png
new file mode 100644
index 00000000..7ab6fd20
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/classic-icons/disk-drive.png differ
diff --git a/Ink Canvas/Resources/Icons-png/classic-icons/documents-folder.png b/Ink Canvas/Resources/Icons-png/classic-icons/documents-folder.png
new file mode 100644
index 00000000..8b18500d
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/classic-icons/documents-folder.png differ
diff --git a/Ink Canvas/Resources/Icons-png/classic-icons/folder.png b/Ink Canvas/Resources/Icons-png/classic-icons/folder.png
new file mode 100644
index 00000000..32706ec6
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/classic-icons/folder.png differ
diff --git a/Ink Canvas/Resources/Icons-png/classic-icons/photo-small-icon.png b/Ink Canvas/Resources/Icons-png/classic-icons/photo-small-icon.png
new file mode 100644
index 00000000..eb1b6ceb
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/classic-icons/photo-small-icon.png differ
diff --git a/Ink Canvas/Resources/Icons-png/classic-icons/program-icon.png b/Ink Canvas/Resources/Icons-png/classic-icons/program-icon.png
new file mode 100644
index 00000000..1c61bf41
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/classic-icons/program-icon.png differ
diff --git a/Ink Canvas/Resources/Icons-png/classic-icons/user-folder.png b/Ink Canvas/Resources/Icons-png/classic-icons/user-folder.png
new file mode 100644
index 00000000..851d5c68
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/classic-icons/user-folder.png differ
diff --git a/Ink Canvas/Resources/Icons-png/icc-toolbar-v2.png b/Ink Canvas/Resources/Icons-png/icc-toolbar-v2.png
new file mode 100644
index 00000000..b64fa6e4
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/icc-toolbar-v2.png differ
diff --git a/Ink Canvas/Resources/Icons-png/uac_icon.png b/Ink Canvas/Resources/Icons-png/uac_icon.png
new file mode 100644
index 00000000..9c90eba8
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/uac_icon.png differ
diff --git a/Ink Canvas/Resources/Icons-png/windows-ink.png b/Ink Canvas/Resources/Icons-png/windows-ink.png
new file mode 100644
index 00000000..1026b335
Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/windows-ink.png differ
diff --git a/Ink Canvas/Resources/Illustrations/settingsv2-powerpoint-pagebtns-bottom.png b/Ink Canvas/Resources/Illustrations/settingsv2-powerpoint-pagebtns-bottom.png
new file mode 100644
index 00000000..c947e78c
Binary files /dev/null and b/Ink Canvas/Resources/Illustrations/settingsv2-powerpoint-pagebtns-bottom.png differ
diff --git a/Ink Canvas/Resources/Illustrations/settingsv2-powerpoint-pagebtns-side.png b/Ink Canvas/Resources/Illustrations/settingsv2-powerpoint-pagebtns-side.png
new file mode 100644
index 00000000..b53e586e
Binary files /dev/null and b/Ink Canvas/Resources/Illustrations/settingsv2-powerpoint-pagebtns-side.png differ
diff --git a/Ink Canvas/Resources/Illustrations/wait-a-moment.png b/Ink Canvas/Resources/Illustrations/wait-a-moment.png
new file mode 100644
index 00000000..0448f36c
Binary files /dev/null and b/Ink Canvas/Resources/Illustrations/wait-a-moment.png differ
diff --git a/Ink Canvas/Resources/contributors.png b/Ink Canvas/Resources/contributors.png
new file mode 100644
index 00000000..989ba357
Binary files /dev/null and b/Ink Canvas/Resources/contributors.png differ
diff --git a/Ink Canvas/Resources/qrcodes.png b/Ink Canvas/Resources/qrcodes.png
new file mode 100644
index 00000000..918dd1df
Binary files /dev/null and b/Ink Canvas/Resources/qrcodes.png differ
diff --git a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml
index 69718df7..eec0cba1 100644
--- a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml
+++ b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml
@@ -496,10 +496,10 @@
-
+
-
+
@@ -513,7 +513,7 @@
-
+
@@ -553,20 +553,15 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -3522,7 +3517,7 @@
-
+
@@ -3548,7 +3543,7 @@
-
+
diff --git a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs
index 3b450262..0cc3c86a 100644
--- a/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs
+++ b/Ink Canvas/Windows/SettingsViews/SettingsWindow.xaml.cs
@@ -96,16 +96,7 @@ namespace Ink_Canvas.Windows {
IconSource = FindResource("PowerPointIcon") as DrawingImage,
Selected = false,
});
- SidebarItems.Add(new SidebarItem() {
- Type = SidebarItemType.Item,
- Title = "插件和脚本",
- Name = "ExtensionsItem",
- IconSource = FindResource("ExtensionsIcon") as DrawingImage,
- Selected = false,
- });
- SidebarItems.Add(new SidebarItem() {
- Type = SidebarItemType.Separator
- });
+
SidebarItems.Add(new SidebarItem() {
Type = SidebarItemType.Item,
Title = "自动化行为",
@@ -159,7 +150,6 @@ namespace Ink_Canvas.Windows {
SettingsPanes = new Grid[] {
AboutPane,
- ExtensionsPane,
CanvasAndInkPane,
GesturesPane,
StartupPane,
@@ -230,10 +220,7 @@ namespace Ink_Canvas.Windows {
SettingsAboutPanel.IsTopBarNeedNoShadowEffect += (o, s) => DropShadowEffectTopBar.Opacity = 0;
}
- public Grid[] SettingsPanes = new Grid[] { };
- public ScrollViewer[] SettingsPaneScrollViewers = new ScrollViewer[] { };
- public string[] SettingsPaneTitles = new string[] { };
- public string[] SettingsPaneNames = new string[] { };
+
public enum SidebarItemType {
Item,
@@ -271,14 +258,19 @@ namespace Ink_Canvas.Windows {
CollectionViewSource.GetDefaultView(SidebarItems).Refresh();
AboutPane.Visibility = _selectedSidebarItemName == "AboutItem" ? Visibility.Visible : Visibility.Collapsed;
- ExtensionsPane.Visibility = _selectedSidebarItemName == "ExtensionsItem" ? Visibility.Visible : Visibility.Collapsed;
CanvasAndInkPane.Visibility = _selectedSidebarItemName == "CanvasAndInkItem" ? Visibility.Visible : Visibility.Collapsed;
GesturesPane.Visibility = _selectedSidebarItemName == "GesturesItem" ? Visibility.Visible : Visibility.Collapsed;
StartupPane.Visibility = _selectedSidebarItemName == "StartupItem" ? Visibility.Visible : Visibility.Collapsed;
- AppearancePane.Visibility = _selectedSidebarItemName == "AppearanceItem" ? Visibility.Visible : Visibility.Collapsed;
+ ThemePane.Visibility = _selectedSidebarItemName == "ThemeItem" ? Visibility.Visible : Visibility.Collapsed;
+ ShortcutsPane.Visibility = _selectedSidebarItemName == "ShortcutsItem" ? Visibility.Visible : Visibility.Collapsed;
+ CrashActionPane.Visibility = _selectedSidebarItemName == "CrashActionItem" ? Visibility.Visible : Visibility.Collapsed;
InkRecognitionPane.Visibility = _selectedSidebarItemName == "InkRecognitionItem" ? Visibility.Visible : Visibility.Collapsed;
AutomationPane.Visibility = _selectedSidebarItemName == "AutomationItem" ? Visibility.Visible : Visibility.Collapsed;
PowerPointPane.Visibility = _selectedSidebarItemName == "PowerPointItem" ? Visibility.Visible : Visibility.Collapsed;
+ LuckyRandomPane.Visibility = _selectedSidebarItemName == "LuckyRandomItem" ? Visibility.Visible : Visibility.Collapsed;
+ StoragePane.Visibility = _selectedSidebarItemName == "StorageItem" ? Visibility.Visible : Visibility.Collapsed;
+ SnapshotPane.Visibility = _selectedSidebarItemName == "SnapshotItem" ? Visibility.Visible : Visibility.Collapsed;
+ AdvancedPane.Visibility = _selectedSidebarItemName == "AdvancedItem" ? Visibility.Visible : Visibility.Collapsed;
foreach (var sv in SettingsPaneScrollViewers) {
sv.ScrollToTop();
}
@@ -386,5 +378,33 @@ namespace Ink_Canvas.Windows {
private void CloseButton_Click(object sender, MouseButtonEventArgs e) {
Close();
}
+
+ private void SearchButton_Click(object sender, MouseButtonEventArgs e) {
+ // 搜索功能 - 可以显示搜索框或搜索对话框
+ }
+
+ private void MenuButton_Click(object sender, MouseButtonEventArgs e) {
+ // 切换侧边栏的收纳和展开状态
+ _isSidebarCollapsed = !_isSidebarCollapsed;
+
+ if (_isSidebarCollapsed) {
+ // 收纳侧边栏
+ SidebarBorder.Width = 0;
+ MainContentGrid.Margin = new Thickness(0, 48, 0, 0);
+ TopbarGrid.Margin = new Thickness(0, 0, 0, 0);
+ } else {
+ // 展开侧边栏
+ SidebarBorder.Width = 250;
+ MainContentGrid.Margin = new Thickness(250, 48, 0, 0);
+ TopbarGrid.Margin = new Thickness(250, 0, 0, 0);
+ }
+ }
+
+ private bool _isSidebarCollapsed;
+
+ public Grid[] SettingsPanes;
+ public ScrollViewer[] SettingsPaneScrollViewers;
+ public string[] SettingsPaneTitles;
+ public string[] SettingsPaneNames;
}
}