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) {