add:白板页面删除
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user