From 45e448ae6f91239e3b7ebde580536fbe7206ff69 Mon Sep 17 00:00:00 2001 From: XY Wang Date: Sat, 25 Sep 2021 11:36:17 +0800 Subject: [PATCH] Add settings for Ink Width and add keyboard support --- Ink Canvas/MainWindow.xaml | 19 ++++++- Ink Canvas/MainWindow.xaml.cs | 100 ++++++++++++++++++++++++---------- Ink Canvas/Settings.cs | 8 +++ 3 files changed, 96 insertions(+), 31 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index 471bde3..acbd174 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -26,7 +26,7 @@ CanExecute="CommandBinding_CanExecute" Executed="KeyExit"/> - + @@ -68,6 +68,23 @@ + + + + + + + + diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index 2383b3c..0e97fbf 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -62,25 +62,28 @@ namespace Ink_Canvas drawingAttributes = inkCanvas.DefaultDrawingAttributes; drawingAttributes.Color = Ink_DefaultColor; - if (File.Exists("Thickness.ini")) - { - try - { - double d = double.Parse(File.ReadAllText("Thickness.ini")); - drawingAttributes.Height = d; - drawingAttributes.Width = d; - } - catch - { - drawingAttributes.Height = 2.5; - drawingAttributes.Width = 2.5; - } - } - else - { - drawingAttributes.Height = 2.5; - drawingAttributes.Width = 2.5; - } + drawingAttributes.Height = 2.5; + drawingAttributes.Width = 2.5; + + //if (File.Exists("Thickness.ini")) + //{ + // try + // { + // double d = double.Parse(File.ReadAllText("Thickness.ini")); + // drawingAttributes.Height = d; + // drawingAttributes.Width = d; + // } + // catch + // { + // drawingAttributes.Height = 2.5; + // drawingAttributes.Width = 2.5; + // } + //} + //else + //{ + // drawingAttributes.Height = 2.5; + // drawingAttributes.Width = 2.5; + //} inkCanvas.EditingMode = InkCanvasEditingMode.Ink; inkCanvas.Gesture += InkCanvas_Gesture; @@ -222,7 +225,7 @@ namespace Ink_Canvas new Thread(new ThreadStart(() => { try { - string response = GetWebClient("http://e.wxriw.cn:1957"); + string response = GetWebClient("http://ink.wxriw.cn:1957"); if (response.Contains("Special Version")) { isAutoUpdateEnabled = true; @@ -329,6 +332,14 @@ namespace Ink_Canvas loadPenCanvas(); + if (Settings.Canvas != null) + { + drawingAttributes.Height = Settings.Canvas.InkWidth; + drawingAttributes.Width = Settings.Canvas.InkWidth; + + InkWidthSlider.Value = Settings.Canvas.InkWidth * 2; + } + Version version = Assembly.GetExecutingAssembly().GetName().Version; TextBlockVersion.Text = version.ToString(); @@ -804,6 +815,20 @@ namespace Ink_Canvas }); } + private void Main_Grid_PreviewKeyDown(object sender, KeyEventArgs e) + { + if (StackPanelPPTControls.Visibility != Visibility.Visible) return; + + if (e.Key == Key.Down || e.Key == Key.PageDown || e.Key == Key.Right) + { + BtnPPTSlidesDown_Click(BtnPPTSlidesDown, null); + } + if (e.Key == Key.Up || e.Key == Key.PageUp || e.Key == Key.Left) + { + BtnPPTSlidesUp_Click(BtnPPTSlidesUp, null); + } + } + int previousSlideID = 0; MemoryStream[] memoryStreams = new MemoryStream[50]; @@ -885,19 +910,18 @@ namespace Ink_Canvas private void BtnPPTSlideShow_Click(object sender, RoutedEventArgs e) { - try - { - new Thread(new ThreadStart(() => { - //presentation.SlideShowSettings.StartingSlide = 1;// pptApplication.ActiveWindow.Selection.SlideRange.SlideNumber; - //presentation.SlideShowSettings.EndingSlide = 1; - presentation.SlideShowSettings.Run(); - })).Start(); - if (currentMode == 1) + new Thread(new ThreadStart(() => { + try { - BtnSwitch_Click(BtnSwitch, e); + presentation.SlideShowSettings.Run(); } + catch { } + })).Start(); + + if (currentMode == 1) + { + BtnSwitch_Click(BtnSwitch, e); } - catch { } } private void BtnPPTSlideShowEnd_Click(object sender, RoutedEventArgs e) @@ -1056,6 +1080,22 @@ namespace Ink_Canvas #endregion + #region Canvas + + private void InkWidthSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) + { + if (!isLoaded) return; + + drawingAttributes.Height = ((Slider)sender).Value / 2; + drawingAttributes.Width = ((Slider)sender).Value / 2; + + Settings.Canvas.InkWidth = ((Slider)sender).Value / 2; + + SaveSettingsToFile(); + } + + #endregion + private void SaveSettingsToFile() { string text = JsonConvert.SerializeObject(Settings, Formatting.Indented); diff --git a/Ink Canvas/Settings.cs b/Ink Canvas/Settings.cs index 0d5dd4f..9fd9005 100644 --- a/Ink Canvas/Settings.cs +++ b/Ink Canvas/Settings.cs @@ -11,6 +11,8 @@ namespace Ink_Canvas { [JsonProperty("behavior")] public Behavior Behavior { get; set; } = new Behavior(); + [JsonProperty("canvas")] + public Canvas Canvas { get; set; } = new Canvas(); [JsonProperty("startup")] public Startup Startup { get; set; } = new Startup(); [JsonProperty("appearance")] @@ -25,6 +27,12 @@ namespace Ink_Canvas public bool IsShowCanvasAtNewSlideShow { get; set; } = true; } + public class Canvas + { + [JsonProperty("inkWidth")] + public double InkWidth { get; set; } = 2.5; + } + public class Startup { [JsonProperty("isAutoHideCanvas")]