diff --git a/InkCanvasForClass/InkCanvasForClass.csproj b/InkCanvasForClass/InkCanvasForClass.csproj
index 58955ad..45683b0 100644
--- a/InkCanvasForClass/InkCanvasForClass.csproj
+++ b/InkCanvasForClass/InkCanvasForClass.csproj
@@ -360,6 +360,9 @@
+
+ Never
+
@@ -551,6 +554,7 @@
+
diff --git a/InkCanvasForClass/Resources/Illustrations/wait-a-moment.png b/InkCanvasForClass/Resources/Illustrations/wait-a-moment.png
new file mode 100644
index 0000000..0448f36
Binary files /dev/null and b/InkCanvasForClass/Resources/Illustrations/wait-a-moment.png differ
diff --git a/InkCanvasForClass/Windows/SettingsWindow.xaml b/InkCanvasForClass/Windows/SettingsWindow.xaml
index 321f282..612fa64 100644
--- a/InkCanvasForClass/Windows/SettingsWindow.xaml
+++ b/InkCanvasForClass/Windows/SettingsWindow.xaml
@@ -7,8 +7,63 @@
xmlns:modern="http://schemas.inkore.net/lib/ui/wpf/modern"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d" WindowStyle="None" ResizeMode="CanMinimize" Background="Transparent"
- Title="InkCanvasForClass 设置" Height="691" Width="910">
+ Title="InkCanvasForClass 设置" Height="691" Width="910" UseLayoutRounding="True">
+
+
@@ -183,29 +238,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -322,7 +359,179 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/InkCanvasForClass/Windows/SettingsWindow.xaml.cs b/InkCanvasForClass/Windows/SettingsWindow.xaml.cs
index 4b94524..8e5fd7d 100644
--- a/InkCanvasForClass/Windows/SettingsWindow.xaml.cs
+++ b/InkCanvasForClass/Windows/SettingsWindow.xaml.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Management;
@@ -11,13 +12,17 @@ using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
+using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
+using Ink_Canvas.Popups;
using iNKORE.UI.WPF.Helpers;
+using iNKORE.UI.WPF.Modern.Controls;
using OSVersionExtension;
namespace Ink_Canvas.Windows {
@@ -210,6 +215,11 @@ namespace Ink_Canvas.Windows {
if (si.Selected) SettingsWindowTitle.Text = si.Title;
}
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;
+ AboutScrollViewerEx.ScrollToTop();
}
public static class TouchTabletDetectHelper {
@@ -304,6 +314,81 @@ namespace Ink_Canvas.Windows {
}
}
+ private void ScrollViewerEx_ScrollChanged(object sender, ScrollChangedEventArgs e) {
+ var scrollViewer = (ScrollViewer)sender;
+ if (scrollViewer.VerticalOffset >= 10) {
+ DropShadowEffectTopBar.Opacity = 0.25;
+ } else {
+ DropShadowEffectTopBar.Opacity = 0;
+ }
+ }
+
+ private void ScrollBar_Scroll(object sender, RoutedEventArgs e) {
+ var scrollbar = (ScrollBar)sender;
+ var scrollviewer = scrollbar.FindAscendant();
+ if (scrollviewer != null) scrollviewer.ScrollToVerticalOffset(scrollbar.Track.Value);
+ }
+
+ private void ScrollBarTrack_MouseEnter(object sender, MouseEventArgs e) {
+ var border = (Border)sender;
+ if (border.Child is Track track) {
+ track.Width = 16;
+ track.Margin = new Thickness(0, 0, -2, 0);
+ var scrollbar = track.FindAscendant();
+ if (scrollbar != null) scrollbar.Width = 16;
+ var grid = track.FindAscendant();
+ if (grid.FindDescendantByName("ScrollBarBorderTrackBackground") is Border backgroundBorder) {
+ backgroundBorder.Width = 8;
+ backgroundBorder.CornerRadius = new CornerRadius(4);
+ backgroundBorder.Opacity = 1;
+ }
+ var thumb = track.Thumb.Template.FindName("ScrollbarThumbEx", track.Thumb) ;
+ if (thumb != null) {
+ var _thumb = thumb as Border;
+ _thumb.CornerRadius = new CornerRadius(4);
+ _thumb.Width = 8;
+ _thumb.Background = new SolidColorBrush(Color.FromRgb(138, 138, 138));
+ }
+ }
+ }
+
+ private void ScrollBarTrack_MouseLeave(object sender, MouseEventArgs e) {
+ var border = (Border)sender;
+ border.Background = new SolidColorBrush(Colors.Transparent);
+ border.CornerRadius = new CornerRadius(0);
+ if (border.Child is Track track) {
+ track.Width = 6;
+ track.Margin = new Thickness(0, 0, 0, 0);
+ var scrollbar = track.FindAscendant();
+ if (scrollbar != null) scrollbar.Width = 6;
+ var grid = track.FindAscendant();
+ if (grid.FindDescendantByName("ScrollBarBorderTrackBackground") is Border backgroundBorder) {
+ backgroundBorder.Width = 3;
+ backgroundBorder.CornerRadius = new CornerRadius(1.5);
+ backgroundBorder.Opacity = 0;
+ }
+ var thumb = track.Thumb.Template.FindName("ScrollbarThumbEx", track.Thumb) ;
+ if (thumb != null) {
+ var _thumb = thumb as Border;
+ _thumb.CornerRadius = new CornerRadius(1.5);
+ _thumb.Width = 3;
+ _thumb.Background = new SolidColorBrush(Color.FromRgb(195, 195, 195));
+ }
+ }
+ }
+
+ private void ScrollbarThumb_MouseDown(object sender, MouseButtonEventArgs e) {
+ var thumb = (Thumb)sender;
+ var border = thumb.Template.FindName("ScrollbarThumbEx",thumb);
+ ((Border)border).Background = new SolidColorBrush(Color.FromRgb(95, 95, 95));
+ }
+
+ private void ScrollbarThumb_MouseUp(object sender, MouseButtonEventArgs e) {
+ var thumb = (Thumb)sender;
+ var border = thumb.Template.FindName("ScrollbarThumbEx",thumb);
+ ((Border)border).Background = new SolidColorBrush(Color.FromRgb(138, 138, 138));
+ }
+
private Border _sidebarItemMouseDownBorder = null;
private void SidebarItem_MouseDown(object sender, MouseButtonEventArgs e) {