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
+14
View File
@@ -4963,6 +4963,13 @@
Text="{Binding Index}">
</TextBlock>
</Border>
<Button Width="24" Height="24" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="4"
ToolTip="删除此页"
Click="WhiteBoardPageListItem_DeleteClick"
Background="#CC000000" Foreground="White"
BorderThickness="0" Padding="0" Cursor="Hand">
<ui:SymbolIcon Symbol="Delete" />
</Button>
</Grid>
</Border>
</ui:SimpleStackPanel>
@@ -7124,6 +7131,13 @@
Text="{Binding Index}">
</TextBlock>
</Border>
<Button Width="24" Height="24" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="4"
ToolTip="删除此页"
Click="WhiteBoardPageListItem_DeleteClick"
Background="#CC000000" Foreground="White"
BorderThickness="0" Padding="0" Cursor="Hand">
<ui:SymbolIcon Symbol="Delete" />
</Button>
</Grid>
</Border>
</ui:SimpleStackPanel>
+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>
@@ -265,5 +265,14 @@ namespace Ink_Canvas
}
}
/// <summary>
/// 预览列表中某页的“删除”按钮点击:删除该页,并阻止事件继续冒泡(避免触发选中/切页)。
/// </summary>
private void WhiteBoardPageListItem_DeleteClick(object sender, RoutedEventArgs e)
{
e.Handled = true;
if (sender is FrameworkElement fe && fe.DataContext is PageListViewItem item)
DeleteWhiteBoardPageByIndex(item.Index);
}
}
}