656863a7d0
* feat(docstring):添加docstring Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com> * fix(docstring):修复部分docstring格式错误 Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com> * fix(docstring):修复部分docstring Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com> * chore(Docstring):MW_* 前14 * chore(Docstring):MW_* part 2 * chore(Docstring):MW_* part 3 * chore:优化缩进 * fix: 修复数学计算中的潜在除零错误和数值稳定性问题 Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com> * chore:删除Rebase时多余的OOBE函数 * chore: 更新代码注释和文档格式 修复XML文档注释中的格式问题,统一使用<c>和<see>标签 更新ConfigHelper类的预留说明,明确未来扩展用途 优化TimerDisplayDate_Elapsed方法的注释,说明UI异步更新机制 合并重复的注释摘要行,提高文档可读性 添加形状识别功能的64位进程限制说明 修正视频呈现器设备选择逻辑的文档说明 * chore(IPPTLinkManager): 更新TryEndSlideShow方法的XML注释格式 * chore: 修正代码注释中的术语和格式问题 更新多个文件中的XML注释,统一使用<see langword="..."/>标记代替<c>...</c>标记 规范术语使用(如"延迟初始化"代替"懒惰初始化") 修正注释中的格式错误和补充说明 调整代码区域的注释对齐格式 --------- Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com>
199 lines
7.2 KiB
C#
199 lines
7.2 KiB
C#
using System;
|
|
using System.Windows;
|
|
using System.Windows.Input;
|
|
|
|
namespace Ink_Canvas
|
|
{
|
|
public partial class MainWindow : Window
|
|
{
|
|
/// <summary>
|
|
/// 鼠标滚轮事件处理,用于PPT翻页
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">鼠标滚轮事件参数</param>
|
|
private void Window_MouseWheel(object sender, MouseWheelEventArgs e)
|
|
{
|
|
if (BtnPPTSlideShowEnd.Visibility != Visibility.Visible || currentMode != 0) return;
|
|
if (e.Delta >= 120)
|
|
{
|
|
BtnPPTSlidesUp_Click(null, null);
|
|
}
|
|
else if (e.Delta <= -120)
|
|
{
|
|
BtnPPTSlidesDown_Click(null, null);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 键盘按键预览事件处理,用于PPT翻页
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">键盘事件参数</param>
|
|
private void Main_Grid_PreviewKeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (BtnPPTSlideShowEnd.Visibility != Visibility.Visible || currentMode != 0) return;
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 撤销操作热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
private void HotKey_Undo(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
SymbolIconUndo_MouseUp(lastBorderMouseDownObject, null);
|
|
}
|
|
catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex); }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 重做操作热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
private void HotKey_Redo(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
SymbolIconRedo_MouseUp(lastBorderMouseDownObject, null);
|
|
}
|
|
catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex); }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 清空画布热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
private void HotKey_Clear(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
SymbolIconDelete_MouseUp(lastBorderMouseDownObject, null);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 退出PPT放映热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
internal void KeyExit(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) BtnPPTSlideShowEnd_Click(BtnPPTSlideShowEnd, null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 切换到绘图工具热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
private void KeyChangeToDrawTool(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
PenIcon_Click(lastBorderMouseDownObject, null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 退出绘图工具热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
/// <remarks>
|
|
/// 在白板模式下,alt+q 退出白板模式
|
|
/// 在非白板模式下,alt+q 切换到鼠标模式
|
|
/// </remarks>
|
|
internal void KeyChangeToQuitDrawTool(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
if (currentMode != 0)
|
|
{
|
|
// 在白板模式下,alt+q 退出白板模式
|
|
ImageBlackboard_MouseUp(lastBorderMouseDownObject, null);
|
|
}
|
|
else
|
|
{
|
|
// 在非白板模式下,alt+q 切换到鼠标模式
|
|
CursorIcon_Click(lastBorderMouseDownObject, null);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 切换到选择工具热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
/// <remarks>仅当画布控件面板可见时生效</remarks>
|
|
private void KeyChangeToSelect(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
if (StackPanelCanvasControls.Visibility == Visibility.Visible)
|
|
SymbolIconSelect_MouseUp(lastBorderMouseDownObject, null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 切换到橡皮擦工具热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
/// <remarks>仅当画布控件面板可见时生效,根据当前橡皮擦状态选择相应的橡皮擦模式</remarks>
|
|
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);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 切换到白板模式热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
private void KeyChangeToBoard(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
ImageBlackboard_MouseUp(lastBorderMouseDownObject, null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 屏幕截图热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
private void KeyCapture(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
SaveScreenShotToDesktop();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 绘制直线热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
/// <remarks>仅当画布控件面板可见时生效</remarks>
|
|
private void KeyDrawLine(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
if (StackPanelCanvasControls.Visibility == Visibility.Visible) BtnDrawLine_Click(lastMouseDownSender, null);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 隐藏工具栏热键处理
|
|
/// </summary>
|
|
/// <param name="sender">发送者</param>
|
|
/// <param name="e">执行路由事件参数</param>
|
|
private void KeyHide(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
SymbolIconEmoji_MouseUp(null, null);
|
|
}
|
|
}
|
|
} |