diff --git a/Ink Canvas/Ink Canvas.csproj b/Ink Canvas/Ink Canvas.csproj index a017072..a20bfb6 100644 --- a/Ink Canvas/Ink Canvas.csproj +++ b/Ink Canvas/Ink Canvas.csproj @@ -571,5 +571,8 @@ + + + \ No newline at end of file diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index be47e66..6a04d55 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -1378,17 +1378,18 @@ - + - - @@ -1434,7 +1435,16 @@ @@ -1478,8 +1488,8 @@ - - + + @@ -1498,8 +1508,8 @@ - - + + @@ -1513,19 +1523,19 @@ - + - + - + - + @@ -1606,7 +1616,7 @@ - diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index 3034572..6e2e65c 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -209,5 +209,9 @@ namespace Ink_Canvas { #endregion Definations and Loading + private void FloatingBarIcons_MouseUp_New(object sender, System.Windows.Input.MouseEventArgs e) + { + + } } } \ No newline at end of file diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs index 3025d73..78172ee 100644 --- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs @@ -15,8 +15,40 @@ using System.Threading; using Application = System.Windows.Application; using Point = System.Windows.Point; using System.Diagnostics; +using iNKORE.UI.WPF.Modern.Controls; +using System.IO; +using System.Windows.Media.Effects; namespace Ink_Canvas { + + public class ChangeColorEffect : ShaderEffect + { + private const string _kshaderAsBase64 = @"AAP///7/HwBDVEFCHAAAAE8AAAAAA///AQAAABwAAAAAAQAASAAAADAAAAADAAAAAQACADgAAAAAAAAAaW5wdXQAq6sEAAwAAQABAAEAAAAAAAAAcHNfM18wAE1pY3Jvc29mdCAoUikgSExTTCBTaGFkZXIgQ29tcGlsZXIgMTAuMQCrUQAABQAAD6AAAIA/AAAAAAAAAAAAAAAAHwAAAgUAAIAAAAOQHwAAAgAAAJAACA+gQgAAAwAAD4AAAOSQAAjkoAEAAAIACAuAAADkgAEAAAIACASAAAAAoP//AAA="; + private static readonly PixelShader _shader; + + static ChangeColorEffect() + { + _shader = new PixelShader(); + _shader.SetStreamSource(new MemoryStream(Convert.FromBase64String(_kshaderAsBase64))); + } + + public ChangeColorEffect() + { + PixelShader = _shader; + UpdateShaderValue(InputProperty); + } + + public Brush Input + { + get { return (Brush)GetValue(InputProperty); } + set { SetValue(InputProperty, value); } + } + + public static readonly DependencyProperty InputProperty = + ShaderEffect.RegisterPixelShaderSamplerProperty("Input", typeof(ChangeColorEffect), 0); + + } + public partial class MainWindow : Window { #region TwoFingZoomBtn @@ -124,6 +156,7 @@ namespace Ink_Canvas { BorderSettings.Visibility = Visibility.Collapsed; } + #region 按鈕高亮背景 private async void HideSubPanels(String mode = null, bool autoAlignCenter = false) { AnimationsHelper.HideWithSlideAndFade(BorderTools); AnimationsHelper.HideWithSlideAndFade(BoardBorderTools); @@ -265,6 +298,7 @@ namespace Ink_Canvas { await Task.Delay(150); isHidingSubPanelsWhenInking = false; } + #endregion private void BorderPenColorBlack_MouseUp(object sender, MouseButtonEventArgs e) { BtnColorBlack_Click(null, null); @@ -326,6 +360,7 @@ namespace Ink_Canvas { } private void SymbolIconDelete_MouseUp(object sender, MouseButtonEventArgs e) { + FloatingBarIcons_MouseUp_New(sender); if (sender != lastBorderMouseDownObject) return; if (inkCanvas.GetSelectedStrokes().Count > 0) { @@ -348,6 +383,7 @@ namespace Ink_Canvas { } private void SymbolIconSelect_MouseUp(object sender, MouseButtonEventArgs e) { + FloatingBarIcons_MouseUp_New(sender); BtnSelect_Click(null, null); HideSubPanels("select"); } @@ -642,7 +678,28 @@ namespace Ink_Canvas { }); } + private void FloatingBarIcons_MouseUp_New(object sender, RoutedEventArgs e = null) + { + // reset the background + SimpleStackPanel ssp = sender as SimpleStackPanel; + if (ssp != null) + { + ssp.Background = Brushes.Transparent; + if (inkCanvas.EditingMode == InkCanvasEditingMode.Ink) + { + Pen_Icon.Background = new ImageBrush(new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/check-box-background.png"))) { Opacity = 1 }; + } + } + } + + private void FloatingBarIcons_MouseUp_MouseLeave(object sender, MouseEventArgs e) + { + FloatingBarIcons_MouseUp_New(sender); + } + private async void CursorIcon_Click(object sender, RoutedEventArgs e) { + FloatingBarIcons_MouseUp_New(sender); + // 切换前自动截图保存墨迹 if (inkCanvas.Strokes.Count > 0 && inkCanvas.Strokes.Count > Settings.Automation.MinimumAutomationStrokeNumber) { if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) SaveScreenShot(true, $"{pptName}/{previousSlideID}_{DateTime.Now:HH-mm-ss}"); @@ -709,6 +766,7 @@ namespace Ink_Canvas { } private void PenIcon_Click(object sender, RoutedEventArgs e) { + FloatingBarIcons_MouseUp_New(sender); if (Pen_Icon.Background == null || StackPanelCanvasControls.Visibility == Visibility.Collapsed) { inkCanvas.EditingMode = InkCanvasEditingMode.Ink; @@ -763,6 +821,7 @@ namespace Ink_Canvas { } private void EraserIcon_Click(object sender, RoutedEventArgs e) { + FloatingBarIcons_MouseUp_New(sender); forceEraser = true; forcePointEraser = true; double k = 1; @@ -791,6 +850,7 @@ namespace Ink_Canvas { } private void EraserIconByStrokes_Click(object sender, RoutedEventArgs e) { + FloatingBarIcons_MouseUp_New(sender); forceEraser = true; forcePointEraser = false; @@ -805,11 +865,13 @@ namespace Ink_Canvas { } private void CursorWithDelIcon_Click(object sender, RoutedEventArgs e) { + FloatingBarIcons_MouseUp_New(sender); SymbolIconDelete_MouseUp(sender, null); CursorIcon_Click(null, null); } private void SelectIcon_MouseUp(object sender, RoutedEvent e) { + FloatingBarIcons_MouseUp_New(sender); forceEraser = true; drawingShapeMode = 0; inkCanvas.IsManipulationEnabled = false; diff --git a/Ink Canvas/MainWindow_cs/MW_SelectionGestures.cs b/Ink Canvas/MainWindow_cs/MW_SelectionGestures.cs index 5d5a5c6..8f86d77 100644 --- a/Ink Canvas/MainWindow_cs/MW_SelectionGestures.cs +++ b/Ink Canvas/MainWindow_cs/MW_SelectionGestures.cs @@ -1,9 +1,11 @@ -using System; +using iNKORE.UI.WPF.Modern.Controls; +using System; using System.Windows; using System.Windows.Controls; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; +using System.Windows.Media.Imaging; using Point = System.Windows.Point; namespace Ink_Canvas { @@ -16,6 +18,16 @@ namespace Ink_Canvas { lastBorderMouseDownObject = sender; } + private void FloatingBarIcons_MouseDown_New(object sender, MouseButtonEventArgs e) + { + lastBorderMouseDownObject = sender; + SimpleStackPanel ssp = sender as SimpleStackPanel; + if (ssp!=null) + { + ssp.Background = new ImageBrush(new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/pressdown-background.png"))) { Opacity = 1 }; + } + } + bool isStrokeSelectionCloneOn = false; private void BorderStrokeSelectionClone_MouseUp(object sender, MouseButtonEventArgs e) { if (lastBorderMouseDownObject != sender) return; diff --git a/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs b/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs index 789eb39..6becc09 100644 --- a/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs +++ b/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs @@ -15,6 +15,7 @@ namespace Ink_Canvas { #region Floating Bar Control private void ImageDrawShape_MouseUp(object sender, MouseButtonEventArgs e) { + FloatingBarIcons_MouseUp_New(sender); if (BorderDrawShape.Visibility == Visibility.Visible) { AnimationsHelper.HideWithSlideAndFade(BorderDrawShape); AnimationsHelper.HideWithSlideAndFade(BoardBorderDrawShape); diff --git a/Ink Canvas/Resources/Icons-png/check-box-background1.png b/Ink Canvas/Resources/Icons-png/check-box-background1.png deleted file mode 100644 index 3df722a..0000000 Binary files a/Ink Canvas/Resources/Icons-png/check-box-background1.png and /dev/null differ diff --git a/Ink Canvas/Resources/Icons-png/check-box-background2.png b/Ink Canvas/Resources/Icons-png/check-box-background2.png deleted file mode 100644 index 8086b5e..0000000 Binary files a/Ink Canvas/Resources/Icons-png/check-box-background2.png and /dev/null differ diff --git a/Ink Canvas/Resources/Icons-png/pressdown-background.png b/Ink Canvas/Resources/Icons-png/pressdown-background.png new file mode 100644 index 0000000..b2bbf8b Binary files /dev/null and b/Ink Canvas/Resources/Icons-png/pressdown-background.png differ