2025-08-23 21:39:21 +08:00
|
|
|
using System;
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
using System.Windows;
|
2025-05-25 09:29:48 +08:00
|
|
|
using System.Windows.Input;
|
2025-08-23 21:39:21 +08:00
|
|
|
using Ink_Canvas.Helpers;
|
|
|
|
|
using static Ink_Canvas.Popups.ColorPalette;
|
2025-05-25 09:29:48 +08:00
|
|
|
|
|
|
|
|
namespace Ink_Canvas {
|
2025-08-23 21:39:21 +08:00
|
|
|
public partial class MainWindow : PerformanceTransparentWin {
|
2025-05-25 09:29:48 +08:00
|
|
|
private void Window_MouseWheel(object sender, MouseWheelEventArgs e) {
|
2025-08-23 21:39:21 +08:00
|
|
|
if (BorderFloatingBarExitPPTBtn.Visibility != Visibility.Visible || currentMode != 0) return;
|
2025-05-25 09:29:48 +08:00
|
|
|
if (e.Delta >= 120)
|
2025-08-23 21:39:21 +08:00
|
|
|
BtnPPTSlidesUp_Click(null, null);
|
|
|
|
|
else if (e.Delta <= -120) BtnPPTSlidesDown_Click(null, null);
|
2025-05-25 09:29:48 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Main_Grid_PreviewKeyDown(object sender, KeyEventArgs e) {
|
2025-08-23 21:39:21 +08:00
|
|
|
if (BorderFloatingBarExitPPTBtn.Visibility == Visibility.Visible || currentMode == 0) {
|
|
|
|
|
if (e.Key == Key.Down || e.Key == Key.PageDown || e.Key == Key.Right || e.Key == Key.N ||
|
|
|
|
|
e.Key == Key.Space) BtnPPTSlidesDown_Click(null, null);
|
|
|
|
|
if (e.Key == Key.Up || e.Key == Key.PageUp || e.Key == Key.Left || e.Key == Key.P)
|
|
|
|
|
BtnPPTSlidesUp_Click(null, null);
|
|
|
|
|
};
|
|
|
|
|
if (e.Key == Key.LeftCtrl) {
|
|
|
|
|
Trace.WriteLine("KeyDown");
|
|
|
|
|
isControlKeyDown = true;
|
|
|
|
|
ControlKeyDownEvent?.Invoke(this,e);
|
|
|
|
|
}
|
|
|
|
|
if (e.Key == Key.LeftShift) {
|
|
|
|
|
Trace.WriteLine("KeyDown");
|
|
|
|
|
isShiftKeyDown = true;
|
|
|
|
|
ShiftKeyDownEvent?.Invoke(this,e);
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-05-25 09:29:48 +08:00
|
|
|
|
2025-08-23 21:39:21 +08:00
|
|
|
public bool isControlKeyDown = false;
|
|
|
|
|
public bool isShiftKeyDown = false;
|
|
|
|
|
|
|
|
|
|
public event EventHandler<KeyEventArgs> ControlKeyDownEvent;
|
|
|
|
|
public event EventHandler<KeyEventArgs> ShiftKeyDownEvent;
|
|
|
|
|
public event EventHandler<KeyEventArgs> ControlKeyUpEvent;
|
|
|
|
|
public event EventHandler<KeyEventArgs> ShiftKeyUpEvent;
|
|
|
|
|
|
|
|
|
|
private void Main_Grid_PreviewKeyUp(object sender, KeyEventArgs e) {
|
|
|
|
|
if (e.Key == Key.LeftCtrl) {
|
|
|
|
|
isControlKeyDown = false;
|
|
|
|
|
ControlKeyUpEvent?.Invoke(this,e);
|
|
|
|
|
};
|
|
|
|
|
if (e.Key == Key.LeftShift) {
|
|
|
|
|
isShiftKeyDown = false;
|
|
|
|
|
ShiftKeyUpEvent?.Invoke(this,e);
|
|
|
|
|
}
|
2025-05-25 09:29:48 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Window_KeyDown(object sender, KeyEventArgs e) {
|
|
|
|
|
if (e.Key == Key.Escape) KeyExit(null, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) {
|
|
|
|
|
e.CanExecute = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void HotKey_Undo(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
try {
|
|
|
|
|
SymbolIconUndo_MouseUp(lastBorderMouseDownObject, null);
|
|
|
|
|
}
|
|
|
|
|
catch { }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void HotKey_Redo(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
try {
|
|
|
|
|
SymbolIconRedo_MouseUp(lastBorderMouseDownObject, null);
|
|
|
|
|
}
|
|
|
|
|
catch { }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void HotKey_Clear(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
SymbolIconDelete_MouseUp(lastBorderMouseDownObject, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void KeyExit(object sender, ExecutedRoutedEventArgs e) {
|
2025-08-23 21:39:21 +08:00
|
|
|
if (BorderFloatingBarExitPPTBtn.Visibility == Visibility.Visible) BtnPPTSlideShowEnd_Click(null, null);
|
2025-05-25 09:29:48 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void KeyChangeToDrawTool(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
PenIcon_Click(lastBorderMouseDownObject, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void KeyChangeToQuitDrawTool(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
if (currentMode != 0) ImageBlackboard_MouseUp(lastBorderMouseDownObject, null);
|
|
|
|
|
CursorIcon_Click(lastBorderMouseDownObject, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void KeyChangeToSelect(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
if (StackPanelCanvasControls.Visibility == Visibility.Visible)
|
|
|
|
|
SymbolIconSelect_MouseUp(lastBorderMouseDownObject, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void KeyChangeToEraser(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
if (StackPanelCanvasControls.Visibility == Visibility.Visible) {
|
|
|
|
|
if (Eraser_Icon.Background != null)
|
|
|
|
|
EraserIconByStrokes_Click(lastBorderMouseDownObject, null);
|
|
|
|
|
else
|
|
|
|
|
EraserIcon_Click(lastBorderMouseDownObject, null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void KeyChangeToBoard(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
ImageBlackboard_MouseUp(lastBorderMouseDownObject, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void KeyCapture(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
SaveScreenShotToDesktop();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void KeyDrawLine(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
if (StackPanelCanvasControls.Visibility == Visibility.Visible) BtnDrawLine_Click(lastMouseDownSender, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void KeyHide(object sender, ExecutedRoutedEventArgs e) {
|
|
|
|
|
SymbolIconEmoji_MouseUp(null, null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|