add:白板页面删除

This commit is contained in:
2026-02-22 12:23:13 +08:00
parent 13396f418b
commit ac98a76797
3 changed files with 62 additions and 24 deletions
+39 -24
View File
@@ -476,45 +476,60 @@ namespace Ink_Canvas
/// <summary>
/// 处理白板页面删除按钮点击事件,删除当前白板页面
/// </summary>
/// <param name="sender">事件发送者</param>
/// <param name="e">事件参数</param>
/// <remarks>
/// - 隐藏图片选择工具栏
/// - 清除当前画布内容
/// - 重新排列剩余页面的历史记录
/// - 更新当前页面索引和页面总数
/// - 恢复剩余页面内容
/// - 更新页码显示
/// - 启用添加按钮(如果页面总数小于99)
/// </remarks>
private void BtnWhiteBoardDelete_Click(object sender, RoutedEventArgs e)
{
// 隐藏图片选择工具栏
DeleteWhiteBoardPageByIndex(CurrentWhiteboardIndex);
}
/// <summary>
/// 按页码删除指定白板页(用于预览列表等)。仅当总页数大于 1 时有效。
/// </summary>
/// <param name="pageIndex">要删除的页码(1 到 WhiteboardTotalCount</param>
private void DeleteWhiteBoardPageByIndex(int pageIndex)
{
if (WhiteboardTotalCount <= 1 || pageIndex < 1 || pageIndex > WhiteboardTotalCount)
return;
if (currentSelectedElement != null)
{
// 保存当前编辑模式
var previousEditingMode = inkCanvas.EditingMode;
UnselectElement(currentSelectedElement);
// 恢复编辑模式
inkCanvas.EditingMode = previousEditingMode;
currentSelectedElement = null;
}
ClearStrokes(true);
if (CurrentWhiteboardIndex != WhiteboardTotalCount)
for (var i = CurrentWhiteboardIndex; i <= WhiteboardTotalCount; i++)
if (pageIndex == CurrentWhiteboardIndex)
{
ClearStrokes(true);
if (CurrentWhiteboardIndex != WhiteboardTotalCount)
for (var i = CurrentWhiteboardIndex; i <= WhiteboardTotalCount; i++)
TimeMachineHistories[i] = TimeMachineHistories[i + 1];
else
CurrentWhiteboardIndex--;
WhiteboardTotalCount--;
RestoreStrokes();
}
else if (pageIndex < CurrentWhiteboardIndex)
{
for (var i = pageIndex; i < WhiteboardTotalCount; i++)
TimeMachineHistories[i] = TimeMachineHistories[i + 1];
else
TimeMachineHistories[WhiteboardTotalCount] = null;
WhiteboardTotalCount--;
CurrentWhiteboardIndex--;
WhiteboardTotalCount--;
RestoreStrokes();
}
else
{
for (var i = pageIndex; i < WhiteboardTotalCount; i++)
TimeMachineHistories[i] = TimeMachineHistories[i + 1];
TimeMachineHistories[WhiteboardTotalCount] = null;
WhiteboardTotalCount--;
}
UpdateIndexInfoDisplay();
if (WhiteboardTotalCount < 99) BtnWhiteBoardAdd.IsEnabled = true;
if (BoardBorderLeftPageListView?.Visibility == Visibility.Visible ||
BoardBorderRightPageListView?.Visibility == Visibility.Visible)
RefreshBlackBoardSidePageListView();
}
/// <summary>