From 38b81787b2dd8fe402d1ce75a4d4b353e075970e Mon Sep 17 00:00:00 2001 From: ChanginJolly Date: Fri, 8 Mar 2024 13:53:21 +0800 Subject: [PATCH] [fix, add, feat, style, update from upstream] --- Ink Canvas/App.xaml | 10 +- Ink Canvas/App.xaml.cs | 4 +- Ink Canvas/ChangeLogWindow.xaml | 2 +- Ink Canvas/CountdownTimerWindow.xaml | 2 +- Ink Canvas/CountdownTimerWindow.xaml.cs | 16 +- Ink Canvas/Helpers/AnimationsHelper.cs | 196 ++++++++++ Ink Canvas/Helpers/ForegroundWindowInfo.cs | 3 + Ink Canvas/Ink Canvas.csproj | 12 +- Ink Canvas/MainWindow.xaml | 175 ++++----- Ink Canvas/MainWindow.xaml.cs | 353 ++++++++++-------- Ink Canvas/NamesInputWindow.xaml | 2 +- Ink Canvas/NamesInputWindow.xaml.cs | 2 +- Ink Canvas/OperatingGuideWindow.xaml | 2 +- Ink Canvas/OperatingGuideWindow.xaml.cs | 6 +- Ink Canvas/Properties/AssemblyInfo.cs | 4 +- Ink Canvas/RandWindow.xaml | 2 +- Ink Canvas/RandWindow.xaml.cs | 4 +- .../Resources/DrawShapeImageDictionary.xaml | 244 ++++++------ Ink Canvas/Resources/IconImageDictionary.xaml | 32 +- .../Resources/Ink Canvas Annotation.ico | Bin 0 -> 111277 bytes .../Resources/SeewoImageDictionary.xaml | 44 +-- Ink Canvas/Resources/Styles/Dark.xaml | 19 +- Ink Canvas/Resources/Styles/Light.xaml | 19 +- Ink Canvas/Settings.cs | 3 + Ink Canvas/SettingsPage.xaml | 2 +- Ink Canvas/YesOrNoNotificationWindow.xaml | 2 +- 26 files changed, 693 insertions(+), 467 deletions(-) create mode 100644 Ink Canvas/Helpers/AnimationsHelper.cs create mode 100644 Ink Canvas/Resources/Ink Canvas Annotation.ico diff --git a/Ink Canvas/App.xaml b/Ink Canvas/App.xaml index 97a0d21..1af86f5 100644 --- a/Ink Canvas/App.xaml +++ b/Ink Canvas/App.xaml @@ -3,12 +3,18 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Ink_Canvas" StartupUri="MainWindow.xaml" - xmlns:ui="http://schemas.modernwpf.com/2019"> + xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"> - + + diff --git a/Ink Canvas/App.xaml.cs b/Ink Canvas/App.xaml.cs index b33fad3..3adc540 100644 --- a/Ink Canvas/App.xaml.cs +++ b/Ink Canvas/App.xaml.cs @@ -1,8 +1,10 @@ using Ink_Canvas.Helpers; +using iNKORE.UI.WPF.Modern.Controls; using System; using System.Linq; using System.Reflection; using System.Windows; +using MessageBox = iNKORE.UI.WPF.Modern.Controls.MessageBox; namespace Ink_Canvas { @@ -58,7 +60,7 @@ namespace Ink_Canvas else try { - System.Windows.Controls.ScrollViewer SenderScrollViewer = (System.Windows.Controls.ScrollViewer)sender; + ScrollViewerEx SenderScrollViewer = (ScrollViewerEx)sender; SenderScrollViewer.ScrollToVerticalOffset(SenderScrollViewer.VerticalOffset - e.Delta * 10 * System.Windows.Forms.SystemInformation.MouseWheelScrollLines / (double)120); e.Handled = true; } diff --git a/Ink Canvas/ChangeLogWindow.xaml b/Ink Canvas/ChangeLogWindow.xaml index 965d45d..9b67299 100644 --- a/Ink Canvas/ChangeLogWindow.xaml +++ b/Ink Canvas/ChangeLogWindow.xaml @@ -4,7 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Ink_Canvas" WindowStartupLocation="CenterScreen" ResizeMode="NoResize" ShowInTaskbar="False" - xmlns:ui="http://schemas.modernwpf.com/2019" FontFamily="Microsoft YaHei UI" Topmost="True" + xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern" FontFamily="Microsoft YaHei UI" Topmost="True" mc:Ignorable="d" ui:WindowHelper.UseModernWindowStyle="True" Loaded="Window_Loaded" Closed="Window_Closed" Title="" Height="390" Width="600"> diff --git a/Ink Canvas/CountdownTimerWindow.xaml b/Ink Canvas/CountdownTimerWindow.xaml index 12c841d..1a8bfe8 100644 --- a/Ink Canvas/CountdownTimerWindow.xaml +++ b/Ink Canvas/CountdownTimerWindow.xaml @@ -4,7 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Ink_Canvas" - xmlns:ui="http://schemas.modernwpf.com/2019" + xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern" xmlns:processbars="clr-namespace:Ink_Canvas.ProcessBars" ui:ThemeManager.RequestedTheme="Light" Topmost="True" Background="Transparent" mc:Ignorable="d" WindowStyle="None" AllowsTransparency="True" diff --git a/Ink Canvas/CountdownTimerWindow.xaml.cs b/Ink Canvas/CountdownTimerWindow.xaml.cs index ed5755f..f4438c5 100644 --- a/Ink Canvas/CountdownTimerWindow.xaml.cs +++ b/Ink Canvas/CountdownTimerWindow.xaml.cs @@ -16,7 +16,7 @@ namespace Ink_Canvas public CountdownTimerWindow() { InitializeComponent(); - AnimationHelper.ShowWithSlideFromBottomAndFade(this, 0.25); + AnimationsHelper.ShowWithSlideFromBottomAndFade(this, 0.25); timer.Elapsed += Timer_Elapsed; timer.Interval = 50; @@ -50,7 +50,7 @@ namespace Ink_Canvas TextBlockSecond.Text = "00"; timer.Stop(); isTimerRunning = false; - SymbolIconStart.Symbol = ModernWpf.Controls.Symbol.Play; + SymbolIconStart.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.Play; BtnStartCover.Visibility = Visibility.Visible; TextBlockHour.Foreground = new SolidColorBrush(StringToColor("#FF5B5D5F")); BorderStopTime.Visibility = Visibility.Collapsed; @@ -201,12 +201,12 @@ namespace Ink_Canvas if (WindowState == WindowState.Normal) { WindowState = WindowState.Maximized; - SymbolIconFullscreen.Symbol = ModernWpf.Controls.Symbol.BackToWindow; + SymbolIconFullscreen.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.BackToWindow; } else { WindowState = WindowState.Normal; - SymbolIconFullscreen.Symbol = ModernWpf.Controls.Symbol.FullScreen; + SymbolIconFullscreen.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.FullScreen; } } @@ -232,7 +232,7 @@ namespace Ink_Canvas BtnStartCover.Visibility = Visibility.Collapsed; BorderStopTime.Visibility = Visibility.Collapsed; TextBlockHour.Foreground = new SolidColorBrush(StringToColor("#FF5B5D5F")); - SymbolIconStart.Symbol = ModernWpf.Controls.Symbol.Play; + SymbolIconStart.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.Play; isTimerRunning = false; timer.Stop(); isPaused = false; @@ -282,7 +282,7 @@ namespace Ink_Canvas startTime += DateTime.Now - pauseTime; ProcessBarTime.IsPaused = false; TextBlockHour.Foreground = Brushes.Black; - SymbolIconStart.Symbol = ModernWpf.Controls.Symbol.Pause; + SymbolIconStart.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.Pause; isPaused = false; timer.Start(); UpdateStopTime(); @@ -294,7 +294,7 @@ namespace Ink_Canvas pauseTime = DateTime.Now; ProcessBarTime.IsPaused = true; TextBlockHour.Foreground = new SolidColorBrush(StringToColor("#FF5B5D5F")); - SymbolIconStart.Symbol = ModernWpf.Controls.Symbol.Play; + SymbolIconStart.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.Play; BorderStopTime.Visibility = Visibility.Collapsed; isPaused = true; timer.Stop(); @@ -306,7 +306,7 @@ namespace Ink_Canvas totalSeconds = ((hour * 60) + minute) * 60 + second; ProcessBarTime.IsPaused = false; TextBlockHour.Foreground = Brushes.Black; - SymbolIconStart.Symbol = ModernWpf.Controls.Symbol.Pause; + SymbolIconStart.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.Pause; BtnResetCover.Visibility = Visibility.Collapsed; if (totalSeconds <= 10) diff --git a/Ink Canvas/Helpers/AnimationsHelper.cs b/Ink Canvas/Helpers/AnimationsHelper.cs new file mode 100644 index 0000000..159da5a --- /dev/null +++ b/Ink Canvas/Helpers/AnimationsHelper.cs @@ -0,0 +1,196 @@ +using System; +using System.Windows; +using System.Windows.Media; +using System.Windows.Media.Animation; + +namespace Ink_Canvas.Helpers +{ + internal class AnimationsHelper + { + public static void ShowWithSlideFromBottomAndFade(UIElement element, double duration = 0.15) + { + if (element.Visibility == Visibility.Visible) return; + + if (element == null) + throw new ArgumentNullException(nameof(element)); + + var sb = new Storyboard(); + + // 渐变动画 + var fadeInAnimation = new DoubleAnimation + { + From = 0.5, + To = 1, + Duration = TimeSpan.FromSeconds(duration) + }; + Storyboard.SetTargetProperty(fadeInAnimation, new PropertyPath(UIElement.OpacityProperty)); + + // 滑动动画 + var slideAnimation = new DoubleAnimation + { + From = element.RenderTransform.Value.OffsetY + 10, // 滑动距离 + To = 0, + Duration = TimeSpan.FromSeconds(duration) + }; + Storyboard.SetTargetProperty(slideAnimation, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.Y)")); + + sb.Children.Add(fadeInAnimation); + sb.Children.Add(slideAnimation); + + element.Visibility = Visibility.Visible; + element.RenderTransform = new TranslateTransform(); + + sb.Begin((FrameworkElement)element); + } + + public static void ShowWithSlideFromLeftAndFade(UIElement element, double duration = 0.25) + { + if (element.Visibility == Visibility.Visible) return; + + if (element == null) + throw new ArgumentNullException(nameof(element)); + + var sb = new Storyboard(); + + // 渐变动画 + var fadeInAnimation = new DoubleAnimation + { + From = 0.5, + To = 1, + Duration = TimeSpan.FromSeconds(duration) + }; + Storyboard.SetTargetProperty(fadeInAnimation, new PropertyPath(UIElement.OpacityProperty)); + + // 滑动动画 + var slideAnimation = new DoubleAnimation + { + From = element.RenderTransform.Value.OffsetX - 20, // 滑动距离 + To = 0, + Duration = TimeSpan.FromSeconds(duration) + }; + Storyboard.SetTargetProperty(slideAnimation, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)")); + + sb.Children.Add(fadeInAnimation); + sb.Children.Add(slideAnimation); + + element.Visibility = Visibility.Visible; + element.RenderTransform = new TranslateTransform(); + + sb.Begin((FrameworkElement)element); + } + + public static void ShowWithScaleFromLeft(UIElement element, double duration = 0.5) + { + if (element.Visibility == Visibility.Visible) return; + + if (element == null) + throw new ArgumentNullException(nameof(element)); + + var sb = new Storyboard(); + + // 水平方向的缩放动画 + var scaleXAnimation = new DoubleAnimation + { + From = 0, + To = 1, + Duration = TimeSpan.FromSeconds(duration) + }; + Storyboard.SetTargetProperty(scaleXAnimation, new PropertyPath("(UIElement.RenderTransform).(ScaleTransform.ScaleX)")); + + // 垂直方向的缩放动画 + var scaleYAnimation = new DoubleAnimation + { + From = 0, + To = 1, + Duration = TimeSpan.FromSeconds(duration) + }; + Storyboard.SetTargetProperty(scaleYAnimation, new PropertyPath("(UIElement.RenderTransform).(ScaleTransform.ScaleY)")); + + sb.Children.Add(scaleXAnimation); + sb.Children.Add(scaleYAnimation); + + element.Visibility = Visibility.Visible; + element.RenderTransformOrigin = new Point(0, 0.5); // 左侧中心点为基准 + element.RenderTransform = new ScaleTransform(0, 0); + + sb.Begin((FrameworkElement)element); + } + + public static void ShowWithScaleFromRight(UIElement element, double duration = 0.5) + { + if (element.Visibility == Visibility.Visible) return; + + if (element == null) + throw new ArgumentNullException(nameof(element)); + + var sb = new Storyboard(); + + // 水平方向的缩放动画 + var scaleXAnimation = new DoubleAnimation + { + From = 0, + To = 1, + Duration = TimeSpan.FromSeconds(duration) + }; + Storyboard.SetTargetProperty(scaleXAnimation, new PropertyPath("(UIElement.RenderTransform).(ScaleTransform.ScaleX)")); + + // 垂直方向的缩放动画 + var scaleYAnimation = new DoubleAnimation + { + From = 0, + To = 1, + Duration = TimeSpan.FromSeconds(duration) + }; + Storyboard.SetTargetProperty(scaleYAnimation, new PropertyPath("(UIElement.RenderTransform).(ScaleTransform.ScaleY)")); + + sb.Children.Add(scaleXAnimation); + sb.Children.Add(scaleYAnimation); + + element.Visibility = Visibility.Visible; + element.RenderTransformOrigin = new Point(1, 0.5); // 右侧中心点为基准 + element.RenderTransform = new ScaleTransform(0, 0); + + sb.Begin((FrameworkElement)element); + } + + public static void HideWithSlideAndFade(UIElement element, double duration = 0.15) + { + if (element.Visibility == Visibility.Collapsed) return; + + if (element == null) + throw new ArgumentNullException(nameof(element)); + + var sb = new Storyboard(); + + // 渐变动画 + var fadeOutAnimation = new DoubleAnimation + { + From = 1, + To = 0, + Duration = TimeSpan.FromSeconds(duration) + }; + Storyboard.SetTargetProperty(fadeOutAnimation, new PropertyPath(UIElement.OpacityProperty)); + + // 滑动动画 + var slideAnimation = new DoubleAnimation + { + From = 0, + To = element.RenderTransform.Value.OffsetY + 10, // 滑动距离 + Duration = TimeSpan.FromSeconds(duration) + }; + Storyboard.SetTargetProperty(slideAnimation, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.Y)")); + + sb.Children.Add(fadeOutAnimation); + sb.Children.Add(slideAnimation); + + sb.Completed += (s, e) => + { + element.Visibility = Visibility.Collapsed; + }; + + element.RenderTransform = new TranslateTransform(); + sb.Begin((FrameworkElement)element); + } + + } +} diff --git a/Ink Canvas/Helpers/ForegroundWindowInfo.cs b/Ink Canvas/Helpers/ForegroundWindowInfo.cs index 39c8590..7d98088 100644 --- a/Ink Canvas/Helpers/ForegroundWindowInfo.cs +++ b/Ink Canvas/Helpers/ForegroundWindowInfo.cs @@ -29,6 +29,9 @@ namespace Ink_Canvas.Helpers public int Top; public int Right; public int Bottom; + + public int Width => Right - Left; + public int Height => Bottom - Top; } public static string WindowTitle() { diff --git a/Ink Canvas/Ink Canvas.csproj b/Ink Canvas/Ink Canvas.csproj index d041ea4..35806fa 100644 --- a/Ink Canvas/Ink Canvas.csproj +++ b/Ink Canvas/Ink Canvas.csproj @@ -54,7 +54,7 @@ 4 - Ink Canvas Annotation.ico + Resources\Ink Canvas Annotation.ico true @@ -167,7 +167,7 @@ CycleProcessBar.xaml - + @@ -286,6 +286,9 @@ + + 0.9.26.3 + 15.0.4420.1018 @@ -315,9 +318,6 @@ --> - - 0.9.6 - 13.0.3 @@ -388,7 +388,7 @@ - + diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index a81d463..cc96911 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -4,7 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Ink_Canvas" - xmlns:ui="http://schemas.modernwpf.com/2019" + xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern" xmlns:c="clr-namespace:Ink_Canvas.Converter" xmlns:Controls="http://schemas.microsoft.com/netfx/2009/xaml/presentation" mc:Ignorable="d" AllowsTransparency="True" @@ -20,7 +20,7 @@ Closing="Window_Closing" Closed="Window_Closed" PreviewKeyDown="Main_Grid_PreviewKeyDown" - Height="6000" Width="1440" + Height="6500" Width="1440" FontFamily="Microsoft YaHei UI" MouseWheel="Window_MouseWheel" Foreground="Black" @@ -143,73 +143,73 @@ PreviewTouchUp="GridInkCanvasSelectionCover_PreviewTouchUp" TouchDown="GridInkCanvasSelectionCover_TouchDown" TouchUp="GridInkCanvasSelectionCover_TouchUp" - Background="#01FFFFFF" Opacity="0.01" Visibility="Visible"/> + Background="#01FFFFFF" Opacity="0.01" Visibility="Visible" Margin="1,0,-1,0"/> + Background="{DynamicResource FloatBarBackground}" Visibility="{Binding ElementName=GridInkCanvasSelectionCover, Path=Visibility}" + BorderThickness="1" BorderBrush="{DynamicResource FloatBarBorderBrush}"> - + - + - + - + - + - + - + - + - + - + - + - + @@ -221,17 +221,17 @@ - + - + - + @@ -278,9 +278,9 @@ @@ -303,20 +303,20 @@ - + @@ -349,7 +349,7 @@ - - - @@ -838,9 +837,9 @@ - --> + - - + - + - + @@ -911,16 +910,16 @@ - + - - + - + + - + - + - + - + @@ -1317,17 +1318,17 @@ - + - + - + - + @@ -1341,14 +1342,14 @@ - - + - + @@ -1367,7 +1368,7 @@ - + @@ -1375,7 +1376,7 @@ - - - - + - + @@ -1569,11 +1570,11 @@ - + - - + @@ -1627,7 +1628,7 @@ diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index 85b57da..d6edcda 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -2,7 +2,7 @@ using Ink_Canvas.Helpers; using IWshRuntimeLibrary; using Microsoft.Office.Interop.PowerPoint; using Microsoft.Win32; -using ModernWpf; +using iNKORE.UI.WPF.Modern; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -27,10 +27,11 @@ using System.Windows.Media.Imaging; using System.Windows.Threading; using Application = System.Windows.Application; using File = System.IO.File; -using MessageBox = System.Windows.MessageBox; +using MessageBox = iNKORE.UI.WPF.Modern.Controls.MessageBox; using Path = System.IO.Path; using Point = System.Windows.Point; using Timer = System.Timers.Timer; +using iNKORE.UI.WPF.Helpers; namespace Ink_Canvas { public partial class MainWindow : Window { @@ -78,6 +79,22 @@ namespace Ink_Canvas { } catch (Exception ex) { LogHelper.WriteLogToFile(ex.ToString(), LogHelper.LogType.Error); } + try { + if (File.Exists("Log.txt")) { + FileInfo fileInfo = new FileInfo("Log.txt"); + long fileSizeInKB = fileInfo.Length / 1024; + if (fileSizeInKB > 512) { + try { + File.Delete("Log.txt"); + LogHelper.WriteLogToFile("The Log.txt file has been successfully deleted. Original file size: " + fileSizeInKB + " KB", LogHelper.LogType.Info); + } catch (Exception ex) { + LogHelper.WriteLogToFile("Can not delete the Log.txt file. File size: " + fileSizeInKB + " KB", LogHelper.LogType.Error); + } + } + } + } catch (Exception ex) { + LogHelper.WriteLogToFile(ex.ToString(), LogHelper.LogType.Error); + } InitTimers(); timeMachine.OnRedoStateChanged += TimeMachine_OnRedoStateChanged; @@ -158,10 +175,11 @@ namespace Ink_Canvas { if (isFloatingBarChangingHideMode) return; try { string windowProcessName = ForegroundWindowInfo.ProcessName(); - //string windowTitle = ForegroundWindowInfo.WindowTitle(); + string windowTitle = ForegroundWindowInfo.WindowTitle(); //LogHelper.WriteLogToFile("windowTitle | " + windowTitle + " | windowProcessName | " + windowProcessName); if (Settings.Automation.IsAutoFoldInEasiNote && windowProcessName == "EasiNote" // 希沃白板 + && (!(windowTitle.Length == 0 && ForegroundWindowInfo.WindowRect().Height < 500) || !Settings.Automation.IsAutoFoldInEasiNoteIgnoreDesktopAnno) || Settings.Automation.IsAutoFoldInEasiCamera && windowProcessName == "EasiCamera" // 希沃视频展台 || Settings.Automation.IsAutoFoldInEasiNote3C && windowProcessName == "EasiNote" // 希沃轻白板 || Settings.Automation.IsAutoFoldInSeewoPincoTeacher && (windowProcessName == "BoardService" || windowProcessName == "seewoPincoTeacher") // 希沃品课 @@ -262,7 +280,7 @@ namespace Ink_Canvas { if (inkCanvas.EditingMode == InkCanvasEditingMode.Select) { //SymbolIconSelect.Foreground = new SolidColorBrush(Color.FromRgb(0, 136, 255)); } else { - //SymbolIconSelect.Foreground = new SolidColorBrush(toolBarForegroundColor); + //SymbolIconSelect.Foreground = new SolidColorBrush(FloatBarForegroundColor); } } @@ -603,10 +621,10 @@ namespace Ink_Canvas { ToggleSwitchColorfulViewboxFloatingBar.IsOn = true; } else { - EnableTwoFingerGestureBorder.Background = (Brush)FindResource("ToolBarBackground"); - BorderFloatingBarMainControls.Background = (Brush)FindResource("ToolBarBackground"); - BorderFloatingBarMoveControls.Background = (Brush)FindResource("ToolBarBackground"); - BorderFloatingBarExitPPTBtn.Background = (Brush)FindResource("ToolBarBackground"); + EnableTwoFingerGestureBorder.Background = (Brush)FindResource("FloatBarBackground"); + BorderFloatingBarMainControls.Background = (Brush)FindResource("FloatBarBackground"); + BorderFloatingBarMoveControls.Background = (Brush)FindResource("FloatBarBackground"); + BorderFloatingBarExitPPTBtn.Background = (Brush)FindResource("FloatBarBackground"); ToggleSwitchColorfulViewboxFloatingBar.IsOn = false; } @@ -1053,9 +1071,9 @@ namespace Ink_Canvas { private void BtnSettings_Click(object sender, RoutedEventArgs e) { if (BorderSettings.Visibility == Visibility.Visible) { - AnimationHelper.HideWithSlideAndFade(BorderSettings, 0.5); + AnimationsHelper.HideWithSlideAndFade(BorderSettings, 0.5); } else { - AnimationHelper.ShowWithSlideFromBottomAndFade(BorderSettings, 0.5); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BorderSettings, 0.5); } } @@ -1065,30 +1083,6 @@ namespace Ink_Canvas { bool forceEraser = false; - private void BtnErase_Click(object sender, RoutedEventArgs e) { - forceEraser = true; - forcePointEraser = !forcePointEraser; - switch (Settings.Canvas.EraserType) { - case 1: - forcePointEraser = true; - break; - case 2: - forcePointEraser = false; - break; - } - inkCanvas.EraserShape = forcePointEraser ? new EllipseStylusShape(50, 50) : new EllipseStylusShape(5, 5); - inkCanvas.EditingMode = - forcePointEraser ? InkCanvasEditingMode.EraseByPoint : InkCanvasEditingMode.EraseByStroke; - drawingShapeMode = 0; - /* - GeometryDrawingEraser.Brush = forcePointEraser - ? new SolidColorBrush(Color.FromRgb(0x23, 0xA9, 0xF2)) - : new SolidColorBrush(Color.FromRgb(0x66, 0x66, 0x66)); - ImageEraser.Visibility = Visibility.Collapsed; - */ - inkCanvas_EditingModeChanged(inkCanvas, null); - CancelSingleFingerDragMode(); - } private void BtnClear_Click(object sender, RoutedEventArgs e) { forceEraser = false; @@ -1147,9 +1141,9 @@ namespace Ink_Canvas { if (currentMode == 0) { currentMode++; GridBackgroundCover.Visibility = Visibility.Collapsed; - AnimationHelper.HideWithSlideAndFade(BlackboardLeftSide); - AnimationHelper.HideWithSlideAndFade(BlackboardCenterSide); - AnimationHelper.HideWithSlideAndFade(BlackboardRightSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardLeftSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardCenterSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardRightSide); SaveStrokes(true); ClearStrokes(true); @@ -1172,15 +1166,16 @@ namespace Ink_Canvas { } StackPanelPPTButtons.Visibility = Visibility.Visible; } + Topmost = true; BtnHideInkCanvas_Click(BtnHideInkCanvas, e); } else { switch ((++currentMode) % 2) { case 0: //屏幕模式 currentMode = 0; GridBackgroundCover.Visibility = Visibility.Collapsed; - AnimationHelper.HideWithSlideAndFade(BlackboardLeftSide); - AnimationHelper.HideWithSlideAndFade(BlackboardCenterSide); - AnimationHelper.HideWithSlideAndFade(BlackboardRightSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardLeftSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardCenterSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardRightSide); SaveStrokes(); ClearStrokes(true); @@ -1205,13 +1200,14 @@ namespace Ink_Canvas { } StackPanelPPTButtons.Visibility = Visibility.Visible; + Topmost = true; break; case 1: //黑板或白板模式 currentMode = 1; GridBackgroundCover.Visibility = Visibility.Visible; - AnimationHelper.ShowWithSlideFromBottomAndFade(BlackboardLeftSide); - AnimationHelper.ShowWithSlideFromBottomAndFade(BlackboardCenterSide); - AnimationHelper.ShowWithSlideFromBottomAndFade(BlackboardRightSide); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BlackboardLeftSide); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BlackboardCenterSide); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BlackboardRightSide); SaveStrokes(true); ClearStrokes(true); @@ -1229,6 +1225,7 @@ namespace Ink_Canvas { } StackPanelPPTButtons.Visibility = Visibility.Collapsed; + Topmost = false; break; } } @@ -1359,7 +1356,7 @@ namespace Ink_Canvas { CheckEnableTwoFingerGestureBtnVisibility(false); HideSubPanels("cursor"); } else { - AnimationHelper.ShowWithSlideFromLeftAndFade(StackPanelCanvasControls); + AnimationsHelper.ShowWithSlideFromLeftAndFade(StackPanelCanvasControls); CheckEnableTwoFingerGestureBtnVisibility(true); } } @@ -1395,9 +1392,9 @@ namespace Ink_Canvas { if (currentMode == 1) { currentMode = 0; GridBackgroundCover.Visibility = Visibility.Collapsed; - AnimationHelper.HideWithSlideAndFade(BlackboardLeftSide); - AnimationHelper.HideWithSlideAndFade(BlackboardCenterSide); - AnimationHelper.HideWithSlideAndFade(BlackboardRightSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardLeftSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardCenterSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardRightSide); } BtnHideInkCanvas_Click(BtnHideInkCanvas, null); } @@ -1675,7 +1672,7 @@ namespace Ink_Canvas { inkCanvas.EditingMode = InkCanvasEditingMode.Ink; inkCanvas.Children.Clear(); isInMultiTouchMode = false; - //SymbolIconMultiTouchMode.Symbol = ModernWpf.Controls.Symbol.People; + //SymbolIconMultiTouchMode.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.People; } else { inkCanvas.StylusDown += MainWindow_StylusDown; inkCanvas.StylusMove += MainWindow_StylusMove; @@ -1685,7 +1682,7 @@ namespace Ink_Canvas { inkCanvas.EditingMode = InkCanvasEditingMode.None; inkCanvas.Children.Clear(); isInMultiTouchMode = true; - //SymbolIconMultiTouchMode.Symbol = ModernWpf.Controls.Symbol.Contact; + //SymbolIconMultiTouchMode.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.Contact; } } @@ -1697,7 +1694,7 @@ namespace Ink_Canvas { double boundWidth = e.GetTouchPoint(null).Bounds.Width; if (boundWidth > 20) { - inkCanvas.EraserShape = new EllipseStylusShape(boundWidth, boundWidth); + inkCanvas.EraserShape = new EllipseStylusShape(boundWidth * 0.75, boundWidth * 0.75); TouchDownPointsList[e.TouchDevice.Id] = InkCanvasEditingMode.EraseByPoint; inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; } else { @@ -1824,7 +1821,7 @@ namespace Ink_Canvas { k = 1.8; break; } - inkCanvas.EraserShape = new EllipseStylusShape(boundsWidth * 1.5 * k * eraserMultiplier, boundsWidth * 1.5 * k * eraserMultiplier); + inkCanvas.EraserShape = new EllipseStylusShape(boundsWidth * 1.5 * k * eraserMultiplier * 0.75, boundsWidth * 1.5 * k * eraserMultiplier * 0.75); inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; } else { if (StackPanelPPTControls.Visibility == Visibility.Visible && inkCanvas.Strokes.Count == 0 && Settings.PowerPointSettings.IsEnableFingerGestureSlideShowControl) { @@ -2313,13 +2310,13 @@ namespace Ink_Canvas { StackPanelPPTControls.Visibility = Visibility.Visible; if (Settings.PowerPointSettings.IsShowBottomPPTNavigationPanel) { - AnimationHelper.ShowWithSlideFromBottomAndFade(BottomViewboxPPTSidesControl); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BottomViewboxPPTSidesControl); } else { BottomViewboxPPTSidesControl.Visibility = Visibility.Collapsed; } if (Settings.PowerPointSettings.IsShowSidePPTNavigationPanel) { - AnimationHelper.ShowWithScaleFromLeft(LeftSidePanelForPPTNavigation); - AnimationHelper.ShowWithScaleFromRight(RightSidePanelForPPTNavigation); + AnimationsHelper.ShowWithScaleFromLeft(LeftSidePanelForPPTNavigation); + AnimationsHelper.ShowWithScaleFromRight(RightSidePanelForPPTNavigation); } else { LeftSidePanelForPPTNavigation.Visibility = Visibility.Collapsed; RightSidePanelForPPTNavigation.Visibility = Visibility.Collapsed; @@ -2339,9 +2336,9 @@ namespace Ink_Canvas { if (currentMode != 0) { currentMode = 0; GridBackgroundCover.Visibility = Visibility.Collapsed; - AnimationHelper.HideWithSlideAndFade(BlackboardLeftSide); - AnimationHelper.HideWithSlideAndFade(BlackboardCenterSide); - AnimationHelper.HideWithSlideAndFade(BlackboardRightSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardLeftSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardCenterSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardRightSide); //SaveStrokes(); ClearStrokes(true); @@ -2478,9 +2475,9 @@ namespace Ink_Canvas { if (currentMode != 0) { currentMode = 0; GridBackgroundCover.Visibility = Visibility.Collapsed; - AnimationHelper.HideWithSlideAndFade(BlackboardLeftSide); - AnimationHelper.HideWithSlideAndFade(BlackboardCenterSide); - AnimationHelper.HideWithSlideAndFade(BlackboardRightSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardLeftSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardCenterSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardRightSide); //SaveStrokes(); ClearStrokes(true); @@ -2552,9 +2549,9 @@ namespace Ink_Canvas { private void BtnPPTSlidesUp_Click(object sender, RoutedEventArgs e) { if (currentMode == 1) { GridBackgroundCover.Visibility = Visibility.Collapsed; - AnimationHelper.HideWithSlideAndFade(BlackboardLeftSide); - AnimationHelper.HideWithSlideAndFade(BlackboardCenterSide); - AnimationHelper.HideWithSlideAndFade(BlackboardRightSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardLeftSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardCenterSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardRightSide); currentMode = 0; } @@ -2584,9 +2581,9 @@ namespace Ink_Canvas { private void BtnPPTSlidesDown_Click(object sender, RoutedEventArgs e) { if (currentMode == 1) { GridBackgroundCover.Visibility = Visibility.Collapsed; - AnimationHelper.HideWithSlideAndFade(BlackboardLeftSide); - AnimationHelper.HideWithSlideAndFade(BlackboardCenterSide); - AnimationHelper.HideWithSlideAndFade(BlackboardRightSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardLeftSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardCenterSide); + AnimationsHelper.HideWithSlideAndFade(BlackboardRightSide); currentMode = 0; } _isPptClickingBtnTurned = true; @@ -2633,7 +2630,7 @@ namespace Ink_Canvas { })).Start(); } - private void BtnPPTSlideShowEnd_Click(object sender, RoutedEventArgs e) { + private async void BtnPPTSlideShowEnd_Click(object sender, RoutedEventArgs e) { Application.Current.Dispatcher.Invoke(() => { try { MemoryStream ms = new MemoryStream(); @@ -2650,10 +2647,8 @@ namespace Ink_Canvas { })).Start(); HideSubPanels("cursor"); - new Thread(new ThreadStart(() => { - Thread.Sleep(50); - ViewboxFloatingBarMarginAnimation(100); - })).Start(); + await Task.Delay(150); + ViewboxFloatingBarMarginAnimation(100); } #endregion @@ -3006,6 +3001,13 @@ namespace Ink_Canvas { StartOrStoptimerCheckAutoFold(); } + private void ToggleSwitchAutoFoldInEasiNoteIgnoreDesktopAnno_Toggled(object sender, RoutedEventArgs e) { + if (!isLoaded) return; + Settings.Automation.IsAutoFoldInEasiNoteIgnoreDesktopAnno = ToggleSwitchAutoFoldInEasiNoteIgnoreDesktopAnno.IsOn; + SaveSettingsToFile(); + //StartOrStoptimerCheckAutoFold(); + } + private void ToggleSwitchAutoFoldInEasiCamera_Toggled(object sender, RoutedEventArgs e) { if (!isLoaded) return; Settings.Automation.IsAutoFoldInEasiCamera = ToggleSwitchAutoFoldInEasiCamera.IsOn; @@ -3292,6 +3294,7 @@ namespace Ink_Canvas { Settings.Appearance.Theme = 0; Settings.Automation.IsAutoFoldInEasiNote = true; + Settings.Automation.IsAutoFoldInEasiNoteIgnoreDesktopAnno = true; Settings.Automation.IsAutoFoldInEasiCamera = true; Settings.Automation.IsAutoFoldInEasiNote3C = false; Settings.Automation.IsAutoFoldInSeewoPincoTeacher = false; @@ -3732,26 +3735,29 @@ namespace Ink_Canvas { } private void BorderStrokeSelectionDelete_MouseUp(object sender, MouseButtonEventArgs e) { - if (lastBorderMouseDownObject == sender) { - SymbolIconDelete_MouseUp(sender, e); - } + if (lastBorderMouseDownObject != sender) return; + SymbolIconDelete_MouseUp(sender, e); } private void GridPenWidthDecrease_MouseUp(object sender, MouseButtonEventArgs e) { if (lastBorderMouseDownObject != sender) return; - - foreach (Stroke stroke in inkCanvas.GetSelectedStrokes()) { - stroke.DrawingAttributes.Width *= 0.8; - stroke.DrawingAttributes.Height *= 0.8; - } + ChangeStrokeThickness(0.8); } private void GridPenWidthIncrease_MouseUp(object sender, MouseButtonEventArgs e) { if (lastBorderMouseDownObject != sender) return; + ChangeStrokeThickness(1.25); + } + private void ChangeStrokeThickness(double multipler) { foreach (Stroke stroke in inkCanvas.GetSelectedStrokes()) { - stroke.DrawingAttributes.Width *= 1.25; - stroke.DrawingAttributes.Height *= 1.25; + var newWidth = stroke.DrawingAttributes.Width * multipler; + var newHeight = stroke.DrawingAttributes.Height * multipler; + if (newWidth >= DrawingAttributes.MinWidth && newWidth <= DrawingAttributes.MaxWidth + && newHeight >= DrawingAttributes.MinHeight && newHeight <= DrawingAttributes.MaxHeight) { + stroke.DrawingAttributes.Width = newWidth; + stroke.DrawingAttributes.Height = newHeight; + } } } @@ -3909,7 +3915,14 @@ namespace Ink_Canvas { inkCanvas.EditingMode = InkCanvasEditingMode.Ink; inkCanvas.EditingMode = InkCanvasEditingMode.Select; } else { - inkCanvas.Select(inkCanvas.Strokes); + StrokeCollection selectedStrokes = new StrokeCollection(); + foreach (Stroke stroke in inkCanvas.Strokes) { + if (stroke.GetBounds().Width > 0 && stroke.GetBounds().Height > 0) { + selectedStrokes.Add(stroke); + } + } + inkCanvas.Select(selectedStrokes); + //inkCanvas.Select(inkCanvas.Strokes); } } else { inkCanvas.EditingMode = InkCanvasEditingMode.Select; @@ -4049,11 +4062,11 @@ namespace Ink_Canvas { private void ImageDrawShape_MouseUp(object sender, MouseButtonEventArgs e) { if (BorderDrawShape.Visibility == Visibility.Visible) { - AnimationHelper.HideWithSlideAndFade(BorderDrawShape); - AnimationHelper.HideWithSlideAndFade(BoardBorderDrawShape); + AnimationsHelper.HideWithSlideAndFade(BorderDrawShape); + AnimationsHelper.HideWithSlideAndFade(BoardBorderDrawShape); } else { - AnimationHelper.ShowWithSlideFromBottomAndFade(BorderDrawShape); - AnimationHelper.ShowWithSlideFromBottomAndFade(BoardBorderDrawShape); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BorderDrawShape); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardBorderDrawShape); } } @@ -4070,9 +4083,9 @@ namespace Ink_Canvas { ToggleSwitchDrawShapeBorderAutoHide.IsOn = !ToggleSwitchDrawShapeBorderAutoHide.IsOn; if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) { - ((ModernWpf.Controls.SymbolIcon)sender).Symbol = ModernWpf.Controls.Symbol.Pin; + ((iNKORE.UI.WPF.Modern.Controls.SymbolIcon)sender).Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.Pin; } else { - ((ModernWpf.Controls.SymbolIcon)sender).Symbol = ModernWpf.Controls.Symbol.UnPin; + ((iNKORE.UI.WPF.Modern.Controls.SymbolIcon)sender).Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.UnPin; } } @@ -4130,7 +4143,9 @@ namespace Ink_Canvas { } lastMouseDownSender = null; if (isLongPressSelected) { - CollapseBorderDrawShape(true); + if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) { + CollapseBorderDrawShape(true); + } var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); ImageDrawLine.BeginAnimation(OpacityProperty, dA); } @@ -4147,7 +4162,9 @@ namespace Ink_Canvas { } lastMouseDownSender = null; if (isLongPressSelected) { - CollapseBorderDrawShape(true); + if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) { + CollapseBorderDrawShape(true); + } var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); ImageDrawDashedLine.BeginAnimation(OpacityProperty, dA); } @@ -4164,7 +4181,9 @@ namespace Ink_Canvas { } lastMouseDownSender = null; if (isLongPressSelected) { - CollapseBorderDrawShape(true); + if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) { + CollapseBorderDrawShape(true); + } var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); ImageDrawDotLine.BeginAnimation(OpacityProperty, dA); } @@ -4181,7 +4200,9 @@ namespace Ink_Canvas { } lastMouseDownSender = null; if (isLongPressSelected) { - CollapseBorderDrawShape(true); + if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) { + CollapseBorderDrawShape(true); + } var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); ImageDrawArrow.BeginAnimation(OpacityProperty, dA); } @@ -4198,7 +4219,9 @@ namespace Ink_Canvas { } lastMouseDownSender = null; if (isLongPressSelected) { - CollapseBorderDrawShape(true); + if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) { + CollapseBorderDrawShape(true); + } var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); ImageDrawParallelLine.BeginAnimation(OpacityProperty, dA); } @@ -5940,6 +5963,7 @@ namespace Ink_Canvas { foreach (StylusPoint stylusPoint in e.Stroke.StylusPoints) { + //LogHelper.WriteLogToFile(stylusPoint.PressureFactor.ToString(), LogHelper.LogType.Info); // 检查是否是压感笔书写 //if (stylusPoint.PressureFactor != 0.5 && stylusPoint.PressureFactor != 0) if ((stylusPoint.PressureFactor > 0.501 || stylusPoint.PressureFactor < 0.5) && stylusPoint.PressureFactor != 0) { @@ -6246,7 +6270,7 @@ namespace Ink_Canvas { #region Auto Theme - Color toolBarForegroundColor = Color.FromRgb(102, 102, 102); + Color FloatBarForegroundColor = Color.FromRgb(102, 102, 102); private void SetTheme(string theme) { if (theme == "Light") { ResourceDictionary rd1 = new ResourceDictionary() { Source = new Uri("Resources/Styles/Light.xaml", UriKind.Relative) }; @@ -6263,7 +6287,7 @@ namespace Ink_Canvas { ThemeManager.SetRequestedTheme(window, ElementTheme.Light); - toolBarForegroundColor = (Color)Application.Current.FindResource("ToolBarForegroundColor"); + FloatBarForegroundColor = (Color)Application.Current.FindResource("FloatBarForegroundColor"); } else if (theme == "Dark") { ResourceDictionary rd1 = new ResourceDictionary() { Source = new Uri("Resources/Styles/Dark.xaml", UriKind.Relative) }; Application.Current.Resources.MergedDictionaries.Add(rd1); @@ -6279,11 +6303,11 @@ namespace Ink_Canvas { ThemeManager.SetRequestedTheme(window, ElementTheme.Dark); - toolBarForegroundColor = (Color)Application.Current.FindResource("ToolBarForegroundColor"); + FloatBarForegroundColor = (Color)Application.Current.FindResource("FloatBarForegroundColor"); } - //SymbolIconSelect.Foreground = new SolidColorBrush(toolBarForegroundColor); - //SymbolIconDelete.Foreground = new SolidColorBrush(toolBarForegroundColor); + //SymbolIconSelect.Foreground = new SolidColorBrush(FloatBarForegroundColor); + //SymbolIconDelete.Foreground = new SolidColorBrush(FloatBarForegroundColor); } private void SystemEvents_UserPreferenceChanged(object sender, Microsoft.Win32.UserPreferenceChangedEventArgs e) { @@ -6439,13 +6463,13 @@ namespace Ink_Canvas { lastNotificationShowTime = Environment.TickCount; TextBlockNotice.Text = notice; - AnimationHelper.ShowWithSlideFromBottomAndFade(GridNotifications); + AnimationsHelper.ShowWithSlideFromBottomAndFade(GridNotifications); new Thread(new ThreadStart(() => { Thread.Sleep(notificationShowTime + 300); if (Environment.TickCount - lastNotificationShowTime >= notificationShowTime) { Application.Current.Dispatcher.Invoke(() => { - AnimationHelper.HideWithSlideAndFade(GridNotifications); + AnimationsHelper.HideWithSlideAndFade(GridNotifications); }); } })).Start(); @@ -6470,17 +6494,17 @@ namespace Ink_Canvas { } private async void HideSubPanels(String mode = null, bool autoAlignCenter = false) { - AnimationHelper.HideWithSlideAndFade(BorderTools); - AnimationHelper.HideWithSlideAndFade(BoardBorderTools); - AnimationHelper.HideWithSlideAndFade(PenPalette); - AnimationHelper.HideWithSlideAndFade(BoardPenPalette); - AnimationHelper.HideWithSlideAndFade(BoardDeleteIcon); - AnimationHelper.HideWithSlideAndFade(BorderSettings, 0.5); - AnimationHelper.HideWithSlideAndFade(TwoFingerGestureBorder); - AnimationHelper.HideWithSlideAndFade(BoardTwoFingerGestureBorder); + AnimationsHelper.HideWithSlideAndFade(BorderTools); + AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); + AnimationsHelper.HideWithSlideAndFade(PenPalette); + AnimationsHelper.HideWithSlideAndFade(BoardPenPalette); + AnimationsHelper.HideWithSlideAndFade(BoardDeleteIcon); + AnimationsHelper.HideWithSlideAndFade(BorderSettings, 0.5); + AnimationsHelper.HideWithSlideAndFade(TwoFingerGestureBorder); + AnimationsHelper.HideWithSlideAndFade(BoardTwoFingerGestureBorder); if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) { - AnimationHelper.HideWithSlideAndFade(BorderDrawShape); - AnimationHelper.HideWithSlideAndFade(BoardBorderDrawShape); + AnimationsHelper.HideWithSlideAndFade(BorderDrawShape); + AnimationsHelper.HideWithSlideAndFade(BoardBorderDrawShape); } if (mode != null) { @@ -6685,9 +6709,6 @@ namespace Ink_Canvas { Not_Enter_Blackboard_fir_Mouse_Click = false; } */ - - Topmost = false; - new Thread(new ThreadStart(() => { Thread.Sleep(100); Application.Current.Dispatcher.Invoke(() => { @@ -6706,11 +6727,11 @@ namespace Ink_Canvas { if (StackPanelPPTControls.Visibility == Visibility.Visible) { if (Settings.PowerPointSettings.IsShowBottomPPTNavigationPanel) { - AnimationHelper.ShowWithSlideFromBottomAndFade(BottomViewboxPPTSidesControl); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BottomViewboxPPTSidesControl); } if (Settings.PowerPointSettings.IsShowSidePPTNavigationPanel) { - AnimationHelper.ShowWithScaleFromLeft(LeftSidePanelForPPTNavigation); - AnimationHelper.ShowWithScaleFromRight(RightSidePanelForPPTNavigation); + AnimationsHelper.ShowWithScaleFromLeft(LeftSidePanelForPPTNavigation); + AnimationsHelper.ShowWithScaleFromRight(RightSidePanelForPPTNavigation); } } @@ -6728,8 +6749,6 @@ namespace Ink_Canvas { SaveInkCanvasStrokes(false, false); // 自动保存当前页墨迹 } - Topmost = true; - if (isInMultiTouchMode) BorderMultiTouchMode_MouseUp(null, null); if (BtnPPTSlideShowEnd.Visibility == Visibility.Collapsed) { @@ -6776,8 +6795,8 @@ namespace Ink_Canvas { private void ImageCountdownTimer_MouseUp(object sender, MouseButtonEventArgs e) { if (lastBorderMouseDownObject != sender) return; - AnimationHelper.HideWithSlideAndFade(BorderTools); - AnimationHelper.HideWithSlideAndFade(BoardBorderTools); + AnimationsHelper.HideWithSlideAndFade(BorderTools); + AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); new CountdownTimerWindow().Show(); } @@ -6785,8 +6804,8 @@ namespace Ink_Canvas { private void OperatingGuideWindowIcon_MouseUp(object sender, MouseButtonEventArgs e) { //if (lastBorderMouseDownObject != sender) return; - AnimationHelper.HideWithSlideAndFade(BorderTools); - AnimationHelper.HideWithSlideAndFade(BoardBorderTools); + AnimationsHelper.HideWithSlideAndFade(BorderTools); + AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); new OperatingGuideWindow().Show(); } @@ -6794,8 +6813,8 @@ namespace Ink_Canvas { private void SymbolIconRand_MouseUp(object sender, MouseButtonEventArgs e) { if (lastBorderMouseDownObject != sender) return; - AnimationHelper.HideWithSlideAndFade(BorderTools); - AnimationHelper.HideWithSlideAndFade(BoardBorderTools); + AnimationsHelper.HideWithSlideAndFade(BorderTools); + AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); new RandWindow().Show(); } @@ -6803,8 +6822,8 @@ namespace Ink_Canvas { private void SymbolIconRandOne_MouseUp(object sender, MouseButtonEventArgs e) { if (lastBorderMouseDownObject != sender) return; - AnimationHelper.HideWithSlideAndFade(BorderTools); - AnimationHelper.HideWithSlideAndFade(BoardBorderTools); + AnimationsHelper.HideWithSlideAndFade(BorderTools); + AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); new RandWindow(true).ShowDialog(); } @@ -6812,8 +6831,8 @@ namespace Ink_Canvas { private void GridInkReplayButton_MouseUp(object sender, MouseButtonEventArgs e) { if (lastBorderMouseDownObject != sender) return; - AnimationHelper.HideWithSlideAndFade(BorderTools); - AnimationHelper.HideWithSlideAndFade(BoardBorderTools); + AnimationsHelper.HideWithSlideAndFade(BorderTools); + AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); CollapseBorderDrawShape(); @@ -6886,11 +6905,11 @@ namespace Ink_Canvas { private void SymbolIconTools_MouseUp(object sender, MouseButtonEventArgs e) { if (BorderTools.Visibility == Visibility.Visible) { - AnimationHelper.HideWithSlideAndFade(BorderTools); - AnimationHelper.HideWithSlideAndFade(BoardBorderTools); + AnimationsHelper.HideWithSlideAndFade(BorderTools); + AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); } else { - AnimationHelper.ShowWithSlideFromBottomAndFade(BorderTools); - AnimationHelper.ShowWithSlideFromBottomAndFade(BoardBorderTools); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BorderTools); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardBorderTools); } } @@ -6927,13 +6946,13 @@ namespace Ink_Canvas { downPos = e.GetPosition(null); GridForFloatingBarDraging.Visibility = Visibility.Visible; - SymbolIconEmoji.Symbol = ModernWpf.Controls.Symbol.Emoji; + SymbolIconEmoji.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.Emoji; } void SymbolIconEmoji_MouseUp(object sender, MouseButtonEventArgs e) { isDragDropInEffect = false; - if (e is null || (downPos.X == e.GetPosition(null).X && downPos.Y == e.GetPosition(null).Y)) { + if (e is null || Math.Abs(downPos.X - e.GetPosition(null).X) <= 10 && Math.Abs(downPos.Y - e.GetPosition(null).Y) <= 10) { if (BorderFloatingBarMainControls.Visibility == Visibility.Visible) { BorderFloatingBarMainControls.Visibility = Visibility.Collapsed; CheckEnableTwoFingerGestureBtnVisibility(false); @@ -6944,7 +6963,7 @@ namespace Ink_Canvas { } GridForFloatingBarDraging.Visibility = Visibility.Collapsed; - SymbolIconEmoji.Symbol = ModernWpf.Controls.Symbol.Emoji2; + SymbolIconEmoji.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.Emoji2; } #endregion @@ -6971,8 +6990,8 @@ namespace Ink_Canvas { private void SymbolIconSaveStrokes_MouseUp(object sender, MouseButtonEventArgs e) { if (lastBorderMouseDownObject != sender || inkCanvas.Visibility != Visibility.Visible) return; - AnimationHelper.HideWithSlideAndFade(BorderTools); - AnimationHelper.HideWithSlideAndFade(BoardBorderTools); + AnimationsHelper.HideWithSlideAndFade(BorderTools); + AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); GridNotifications.Visibility = Visibility.Collapsed; @@ -7045,8 +7064,8 @@ namespace Ink_Canvas { private void SymbolIconOpenStrokes_MouseUp(object sender, MouseButtonEventArgs e) { if (lastBorderMouseDownObject != sender) return; - AnimationHelper.HideWithSlideAndFade(BorderTools); - AnimationHelper.HideWithSlideAndFade(BoardBorderTools); + AnimationsHelper.HideWithSlideAndFade(BorderTools); + AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); OpenFileDialog openFileDialog = new OpenFileDialog(); @@ -7118,8 +7137,8 @@ namespace Ink_Canvas { if (isFloatingBarChangingHideMode) return; /*if (sender == hiddenButtonInBorderTools) { - AnimationHelper.HideWithSlideAndFade(BorderTools); - AnimationHelper.HideWithSlideAndFade(BoardBorderTools); + AnimationsHelper.HideWithSlideAndFade(BorderTools); + AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); }*/ await Dispatcher.InvokeAsync(() => { @@ -7169,11 +7188,11 @@ namespace Ink_Canvas { await Dispatcher.InvokeAsync(() => { if (StackPanelPPTControls.Visibility == Visibility.Visible) { if (Settings.PowerPointSettings.IsShowBottomPPTNavigationPanel) { - AnimationHelper.ShowWithSlideFromBottomAndFade(BottomViewboxPPTSidesControl); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BottomViewboxPPTSidesControl); } if (Settings.PowerPointSettings.IsShowSidePPTNavigationPanel) { - AnimationHelper.ShowWithScaleFromLeft(LeftSidePanelForPPTNavigation); - AnimationHelper.ShowWithScaleFromRight(RightSidePanelForPPTNavigation); + AnimationsHelper.ShowWithScaleFromLeft(LeftSidePanelForPPTNavigation); + AnimationsHelper.ShowWithScaleFromRight(RightSidePanelForPPTNavigation); } } if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) { @@ -7369,18 +7388,18 @@ namespace Ink_Canvas { BtnHideInkCanvas.Content = "隐藏\n画板"; StackPanelCanvasControls.Visibility = Visibility.Visible; - //AnimationHelper.ShowWithSlideFromLeftAndFade(StackPanelCanvasControls); + //AnimationsHelper.ShowWithSlideFromLeftAndFade(StackPanelCanvasControls); CheckEnableTwoFingerGestureBtnVisibility(true); inkCanvas.EditingMode = InkCanvasEditingMode.Ink; ColorSwitchCheck(); HideSubPanels("pen", true); } else { if (PenPalette.Visibility == Visibility.Visible) { - AnimationHelper.HideWithSlideAndFade(PenPalette); - AnimationHelper.HideWithSlideAndFade(BoardPenPalette); + AnimationsHelper.HideWithSlideAndFade(PenPalette); + AnimationsHelper.HideWithSlideAndFade(BoardPenPalette); } else { - AnimationHelper.ShowWithSlideFromBottomAndFade(PenPalette); - AnimationHelper.ShowWithSlideFromBottomAndFade(BoardPenPalette); + AnimationsHelper.ShowWithSlideFromBottomAndFade(PenPalette); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardPenPalette); } } } @@ -7411,8 +7430,7 @@ namespace Ink_Canvas { k = 1.8; break; } - inkCanvas.EraserShape = new EllipseStylusShape(k * 80, k * 80); - //inkCanvas.EraserShape = new EllipseStylusShape(70, 70); + inkCanvas.EraserShape = new EllipseStylusShape(k * 90, k * 90); inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; drawingShapeMode = 0; @@ -7466,11 +7484,26 @@ namespace Ink_Canvas { private void BoardEraserIcon_Click(object sender, RoutedEventArgs e) { if (BoardEraser.Background.ToString() == "#FF679CF4") { - AnimationHelper.ShowWithSlideFromBottomAndFade(BoardDeleteIcon); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardDeleteIcon); } else { forceEraser = true; forcePointEraser = true; - inkCanvas.EraserShape = new EllipseStylusShape(50, 50); + double k = 1; + switch (Settings.Canvas.EraserSize) { + case 0: + k = 0.5; + break; + case 1: + k = 0.8; + break; + case 3: + k = 1.25; + break; + case 4: + k = 1.8; + break; + } + inkCanvas.EraserShape = new EllipseStylusShape(k * 90, k * 90); inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; drawingShapeMode = 0; @@ -7483,7 +7516,7 @@ namespace Ink_Canvas { private void BoardEraserIconByStrokes_Click(object sender, RoutedEventArgs e) { if (BoardEraserByStrokes.Background.ToString() == "#FF679CF4") { - AnimationHelper.ShowWithSlideFromBottomAndFade(BoardDeleteIcon); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardDeleteIcon); } else { forceEraser = true; forcePointEraser = false; @@ -7516,8 +7549,8 @@ namespace Ink_Canvas { } private void CollapseBorderDrawShape(bool isLongPressSelected = false) { - AnimationHelper.HideWithSlideAndFade(BorderDrawShape); - AnimationHelper.HideWithSlideAndFade(BoardBorderDrawShape); + AnimationsHelper.HideWithSlideAndFade(BorderDrawShape); + AnimationsHelper.HideWithSlideAndFade(BoardBorderDrawShape); } private void DrawShapePromptToPen() { @@ -7542,11 +7575,11 @@ namespace Ink_Canvas { private void TwoFingerGestureBorder_MouseUp(object sender, RoutedEventArgs e) { if (TwoFingerGestureBorder.Visibility == Visibility.Visible) { - AnimationHelper.HideWithSlideAndFade(TwoFingerGestureBorder); - AnimationHelper.HideWithSlideAndFade(BoardTwoFingerGestureBorder); + AnimationsHelper.HideWithSlideAndFade(TwoFingerGestureBorder); + AnimationsHelper.HideWithSlideAndFade(BoardTwoFingerGestureBorder); } else { - AnimationHelper.ShowWithSlideFromBottomAndFade(TwoFingerGestureBorder); - AnimationHelper.ShowWithSlideFromBottomAndFade(BoardTwoFingerGestureBorder); + AnimationsHelper.ShowWithSlideFromBottomAndFade(TwoFingerGestureBorder); + AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardTwoFingerGestureBorder); } } diff --git a/Ink Canvas/NamesInputWindow.xaml b/Ink Canvas/NamesInputWindow.xaml index b4f9c83..f397f49 100644 --- a/Ink Canvas/NamesInputWindow.xaml +++ b/Ink Canvas/NamesInputWindow.xaml @@ -6,7 +6,7 @@ xmlns:local="clr-namespace:Ink_Canvas" mc:Ignorable="d" FontFamily="Microsoft YaHei UI" ui:WindowHelper.UseModernWindowStyle="True" ui:ThemeManager.RequestedTheme="Light" WindowStartupLocation="CenterScreen" - xmlns:ui="http://schemas.modernwpf.com/2019" Topmost="True" + xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern" Topmost="True" Title="Ink Canvas 抽奖 - 名单导入" Height="500" Width="400" Loaded="Window_Loaded" Closing="Window_Closing"> diff --git a/Ink Canvas/NamesInputWindow.xaml.cs b/Ink Canvas/NamesInputWindow.xaml.cs index 8809fe6..cd58264 100644 --- a/Ink Canvas/NamesInputWindow.xaml.cs +++ b/Ink Canvas/NamesInputWindow.xaml.cs @@ -12,7 +12,7 @@ namespace Ink_Canvas public NamesInputWindow() { InitializeComponent(); - AnimationHelper.ShowWithSlideFromBottomAndFade(this, 0.25); + AnimationsHelper.ShowWithSlideFromBottomAndFade(this, 0.25); } string originText = ""; diff --git a/Ink Canvas/OperatingGuideWindow.xaml b/Ink Canvas/OperatingGuideWindow.xaml index 1e61da2..67c8173 100644 --- a/Ink Canvas/OperatingGuideWindow.xaml +++ b/Ink Canvas/OperatingGuideWindow.xaml @@ -4,7 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Ink_Canvas" - xmlns:ui="http://schemas.modernwpf.com/2019" + xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern" ui:ThemeManager.RequestedTheme="Light" Topmost="True" Background="Transparent" mc:Ignorable="d" WindowStyle="None" AllowsTransparency="True" WindowStartupLocation="CenterScreen" diff --git a/Ink Canvas/OperatingGuideWindow.xaml.cs b/Ink Canvas/OperatingGuideWindow.xaml.cs index 570ca77..3d48d67 100644 --- a/Ink Canvas/OperatingGuideWindow.xaml.cs +++ b/Ink Canvas/OperatingGuideWindow.xaml.cs @@ -12,7 +12,7 @@ namespace Ink_Canvas public OperatingGuideWindow() { InitializeComponent(); - AnimationHelper.ShowWithSlideFromBottomAndFade(this, 0.25); + AnimationsHelper.ShowWithSlideFromBottomAndFade(this, 0.25); } private void BtnClose_MouseUp(object sender, MouseButtonEventArgs e) @@ -28,10 +28,10 @@ namespace Ink_Canvas private void BtnFullscreen_MouseUp(object sender, MouseButtonEventArgs e) { if (WindowState == WindowState.Normal) { WindowState = WindowState.Maximized; - SymbolIconFullscreen.Symbol = ModernWpf.Controls.Symbol.BackToWindow; + SymbolIconFullscreen.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.BackToWindow; } else { WindowState = WindowState.Normal; - SymbolIconFullscreen.Symbol = ModernWpf.Controls.Symbol.FullScreen; + SymbolIconFullscreen.Symbol = iNKORE.UI.WPF.Modern.Controls.Symbol.FullScreen; } } diff --git a/Ink Canvas/Properties/AssemblyInfo.cs b/Ink Canvas/Properties/AssemblyInfo.cs index a5ec23e..785762b 100644 --- a/Ink Canvas/Properties/AssemblyInfo.cs +++ b/Ink Canvas/Properties/AssemblyInfo.cs @@ -49,5 +49,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("4.4.2.0")] -[assembly: AssemblyFileVersion("4.4.2.0")] +[assembly: AssemblyVersion("4.5.0.0")] +[assembly: AssemblyFileVersion("4.5.0.0")] diff --git a/Ink Canvas/RandWindow.xaml b/Ink Canvas/RandWindow.xaml index 7f5ad87..2483411 100644 --- a/Ink Canvas/RandWindow.xaml +++ b/Ink Canvas/RandWindow.xaml @@ -3,7 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:ui="http://schemas.modernwpf.com/2019" + xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern" xmlns:local="clr-namespace:Ink_Canvas" FontFamily="Microsoft YaHei UI" ui:ThemeManager.RequestedTheme="Light" Topmost="True" Background="Transparent" mc:Ignorable="d" WindowStyle="None" AllowsTransparency="True" Loaded="Window_Loaded" diff --git a/Ink Canvas/RandWindow.xaml.cs b/Ink Canvas/RandWindow.xaml.cs index 83f0356..95527e8 100644 --- a/Ink Canvas/RandWindow.xaml.cs +++ b/Ink Canvas/RandWindow.xaml.cs @@ -1,6 +1,6 @@ using Ink_Canvas.Helpers; using Microsoft.VisualBasic; -using ModernWpf.Controls; +using iNKORE.UI.WPF.Modern.Controls; using System; using System.Collections.Generic; using System.IO; @@ -16,7 +16,7 @@ namespace Ink_Canvas { public partial class RandWindow : Window { public RandWindow() { InitializeComponent(); - AnimationHelper.ShowWithSlideFromBottomAndFade(this, 0.25); + AnimationsHelper.ShowWithSlideFromBottomAndFade(this, 0.25); } public RandWindow(bool IsAutoClose) { diff --git a/Ink Canvas/Resources/DrawShapeImageDictionary.xaml b/Ink Canvas/Resources/DrawShapeImageDictionary.xaml index a214dc4..c7e2428 100644 --- a/Ink Canvas/Resources/DrawShapeImageDictionary.xaml +++ b/Ink Canvas/Resources/DrawShapeImageDictionary.xaml @@ -5,7 +5,7 @@ - + @@ -13,7 +13,7 @@ - + @@ -27,7 +27,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -53,7 +53,7 @@ - + @@ -61,7 +61,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -77,7 +77,7 @@ - + @@ -85,7 +85,7 @@ - + @@ -93,7 +93,7 @@ - + @@ -101,7 +101,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -117,7 +117,7 @@ - + @@ -125,7 +125,7 @@ - + @@ -133,7 +133,7 @@ - + @@ -145,7 +145,7 @@ - + @@ -153,7 +153,7 @@ - + @@ -161,7 +161,7 @@ - + @@ -173,7 +173,7 @@ - + @@ -181,7 +181,7 @@ - + @@ -189,7 +189,7 @@ - + @@ -201,7 +201,7 @@ - + @@ -216,21 +216,21 @@ - + - + - + @@ -241,13 +241,13 @@ - + - + @@ -255,7 +255,7 @@ - + @@ -269,7 +269,7 @@ - + @@ -278,21 +278,21 @@ - + - + - + @@ -303,13 +303,13 @@ - + - + @@ -317,7 +317,7 @@ - + @@ -331,7 +331,7 @@ - + @@ -345,7 +345,7 @@ - + @@ -353,7 +353,7 @@ - + @@ -361,7 +361,7 @@ - + @@ -369,7 +369,7 @@ - + @@ -383,7 +383,7 @@ - + @@ -391,7 +391,7 @@ - + @@ -403,7 +403,7 @@ - + @@ -417,7 +417,7 @@ - + @@ -425,7 +425,7 @@ - + @@ -433,7 +433,7 @@ - + @@ -447,7 +447,7 @@ - + @@ -455,7 +455,7 @@ - + @@ -463,7 +463,7 @@ - + @@ -471,7 +471,7 @@ - + @@ -485,7 +485,7 @@ - + @@ -498,13 +498,13 @@ - + - + - + @@ -514,7 +514,7 @@ - + @@ -522,7 +522,7 @@ - + @@ -530,7 +530,7 @@ - + @@ -538,7 +538,7 @@ - + @@ -546,7 +546,7 @@ - + @@ -554,7 +554,7 @@ - + @@ -568,7 +568,7 @@ - + @@ -576,7 +576,7 @@ - + @@ -584,7 +584,7 @@ - + @@ -592,7 +592,7 @@ - + @@ -600,7 +600,7 @@ - + @@ -608,7 +608,7 @@ - + @@ -622,7 +622,7 @@ - + @@ -630,7 +630,7 @@ - + @@ -638,7 +638,7 @@ - + @@ -646,7 +646,7 @@ - + @@ -654,7 +654,7 @@ - + @@ -662,7 +662,7 @@ - + @@ -676,7 +676,7 @@ - + @@ -684,7 +684,7 @@ - + @@ -692,7 +692,7 @@ - + @@ -700,7 +700,7 @@ - + @@ -708,7 +708,7 @@ - + @@ -716,7 +716,7 @@ - + @@ -730,7 +730,7 @@ - + @@ -738,7 +738,7 @@ - + @@ -746,7 +746,7 @@ - + @@ -754,7 +754,7 @@ - + @@ -762,7 +762,7 @@ - + @@ -770,7 +770,7 @@ - + @@ -778,7 +778,7 @@ - + @@ -790,7 +790,7 @@ - + @@ -804,7 +804,7 @@ - + @@ -812,7 +812,7 @@ - + @@ -820,7 +820,7 @@ - + @@ -828,7 +828,7 @@ - + @@ -836,7 +836,7 @@ - + @@ -844,7 +844,7 @@ - + @@ -852,7 +852,7 @@ - + @@ -860,7 +860,7 @@ - + @@ -868,7 +868,7 @@ - + @@ -882,7 +882,7 @@ - + @@ -890,7 +890,7 @@ - + @@ -898,7 +898,7 @@ - + @@ -906,7 +906,7 @@ - + @@ -914,7 +914,7 @@ - + @@ -928,7 +928,7 @@ - + @@ -936,7 +936,7 @@ - + @@ -950,7 +950,7 @@ - + @@ -969,14 +969,14 @@ - + - + @@ -989,13 +989,13 @@ - + - + @@ -1004,27 +1004,27 @@ - + - + - + - + @@ -1039,20 +1039,20 @@ - + - + - + @@ -1066,7 +1066,7 @@ - + @@ -1074,7 +1074,7 @@ - + @@ -1082,7 +1082,7 @@ - + @@ -1090,7 +1090,7 @@ - + @@ -1105,28 +1105,28 @@ - + - + - + - + diff --git a/Ink Canvas/Resources/IconImageDictionary.xaml b/Ink Canvas/Resources/IconImageDictionary.xaml index ecd4688..5231b52 100644 --- a/Ink Canvas/Resources/IconImageDictionary.xaml +++ b/Ink Canvas/Resources/IconImageDictionary.xaml @@ -4,16 +4,16 @@ - + - + - + - + @@ -22,16 +22,16 @@ - + - + - + - + @@ -41,7 +41,7 @@ - + @@ -49,7 +49,7 @@ - + @@ -57,7 +57,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -78,13 +78,13 @@ - + - + @@ -92,7 +92,7 @@ - + @@ -105,7 +105,7 @@ - + diff --git a/Ink Canvas/Resources/Ink Canvas Annotation.ico b/Ink Canvas/Resources/Ink Canvas Annotation.ico new file mode 100644 index 0000000000000000000000000000000000000000..72a67fe84adbba7b4e8fb88db2f2c856da50726b GIT binary patch literal 111277 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 literal 0 HcmV?d00001 diff --git a/Ink Canvas/Resources/SeewoImageDictionary.xaml b/Ink Canvas/Resources/SeewoImageDictionary.xaml index 90b33db..bb85668 100644 --- a/Ink Canvas/Resources/SeewoImageDictionary.xaml +++ b/Ink Canvas/Resources/SeewoImageDictionary.xaml @@ -34,7 +34,7 @@ Brush="{x:Null}"> @@ -133,7 +133,7 @@ Brush="{x:Null}"> @@ -230,7 +230,7 @@ Brush="{x:Null}"> + Brush="{DynamicResource FloatBarForeground}"> M7,15C6.85289858,15.5677816,6.85289858,16.4322348,7,17L22,29C22.7348015,29.3762198,24,28.8227297,24,28L24,4C24,3.1772867,22.7348015,2.62379657,22,3L7,15z @@ -314,7 +314,7 @@ Brush="{x:Null}"> @@ -414,7 +414,7 @@ Brush="{x:Null}"> + Brush="{DynamicResource FloatBarForeground}"> + Brush="{DynamicResource FloatBarForeground}"> + Brush="{DynamicResource FloatBarForeground}"> + Brush="{DynamicResource FloatBarForeground}"> + Brush="{DynamicResource FloatBarForeground}"> + Brush="{DynamicResource FloatBarForeground}"> + Brush="{DynamicResource FloatBarForeground}"> + Brush="{DynamicResource FloatBarForeground}"> + Brush="{DynamicResource FloatBarForeground}"> + Brush="{DynamicResource FloatBarForeground}"> + Brush="{DynamicResource FloatBarForeground}"> - - - - #FFcccccc - ---> - - - - - #FFcccccc + + + + #FFcccccc \ No newline at end of file diff --git a/Ink Canvas/Resources/Styles/Light.xaml b/Ink Canvas/Resources/Styles/Light.xaml index fe5dc6c..3bd261b 100644 --- a/Ink Canvas/Resources/Styles/Light.xaml +++ b/Ink Canvas/Resources/Styles/Light.xaml @@ -1,16 +1,7 @@ - - - - - - #FF666666 + + + + #FF666666 \ No newline at end of file diff --git a/Ink Canvas/Settings.cs b/Ink Canvas/Settings.cs index b838bb8..160bf5d 100644 --- a/Ink Canvas/Settings.cs +++ b/Ink Canvas/Settings.cs @@ -171,6 +171,9 @@ namespace Ink_Canvas [JsonProperty("isAutoFoldInEasiNote")] public bool IsAutoFoldInEasiNote { get; set; } = false; + [JsonProperty("isAutoFoldInEasiNoteIgnoreDesktopAnno")] + public bool IsAutoFoldInEasiNoteIgnoreDesktopAnno { get; set; } = false; + [JsonProperty("isAutoFoldInEasiCamera")] public bool IsAutoFoldInEasiCamera { get; set; } = false; diff --git a/Ink Canvas/SettingsPage.xaml b/Ink Canvas/SettingsPage.xaml index c8e7a86..aa14494 100644 --- a/Ink Canvas/SettingsPage.xaml +++ b/Ink Canvas/SettingsPage.xaml @@ -4,7 +4,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Ink_Canvas" - xmlns:ui="http://schemas.modernwpf.com/2019" + xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern" mc:Ignorable="d" FontFamily="Microsoft YaHei UI" ui:ThemeManager.RequestedTheme="Light"> diff --git a/Ink Canvas/YesOrNoNotificationWindow.xaml b/Ink Canvas/YesOrNoNotificationWindow.xaml index 63e9f08..5bb4050 100644 --- a/Ink Canvas/YesOrNoNotificationWindow.xaml +++ b/Ink Canvas/YesOrNoNotificationWindow.xaml @@ -3,7 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:local="clr-namespace:Ink_Canvas" xmlns:ui="http://schemas.modernwpf.com/2019" + xmlns:local="clr-namespace:Ink_Canvas" xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern" mc:Ignorable="d" Topmost="True" WindowStartupLocation="CenterScreen" ui:WindowHelper.UseModernWindowStyle="True" ResizeMode="NoResize" Closed="Window_Closed" ui:ThemeManager.RequestedTheme="Light" Title="演示文档设置 - Ink Canvas 画板" Height="160" Width="450" FontFamily="Microsoft YaHei UI">