Skip to content

自定义菜单

CPDFView查看器支持右击菜单功能,在CPDFView区域内右击鼠标会弹出自定义菜单,您可以为用户在不同的情境下设置不同的自定义菜单,例如右击空白区域设置页面缩放比例,右击文字、图片或注释进行复制等。

以下是设置自定义菜单的步骤:

  1. 注册自定义菜单事件。
  2. 根据命令类型(e.CommandType)进行操作。当命令类型为 Context 时,创建了一个上下文菜单,并添加菜单项(Copy、Cut、Paste、Delete)。
  3. 当命令类型是基本命令(Copy、Cut、Paste、Delete)时,直接调用 e.DoCommand() 方法执行相应的命令。

以下是设置自定义菜单的示例代码:

C#
// 注册自定义菜单事件
myCPDFViewer.AnnotCommandHandler += PdfViewer_AnnotCommandHandler;
private void myCPDFViewer_AnnotCommandHandler(object sender, AnnotCommandArgs e)
{

// 根据命令类型(`e.CommandType`)进行操作。当命令类型为 `Context` 时,创建了一个上下文菜单,并添加菜单项(Copy、Cut、Paste、Delete)。
    switch (e.CommandType)
    {
        case CommandType.Context:
            e.Handle = true;
            e.PopupMenu = new ContextMenu();
            e.PopupMenu.Items.Add(new MenuItem() { Header = "Copy", Command = ApplicationCommands.Copy, CommandTarget = (UIElement)sender });
            e.PopupMenu.Items.Add(new MenuItem() { Header = "Cut", Command = ApplicationCommands.Cut, CommandTarget = (UIElement)sender });
            e.PopupMenu.Items.Add(new MenuItem() { Header = "Paste", Command = ApplicationCommands.Paste, CommandTarget = (UIElement)sender });
            e.PopupMenu.Items.Add(new MenuItem() { Header = "Delete", Command = ApplicationCommands.Delete, CommandTarget = (UIElement)sender });
            break;
            
// 当命令类型是基本命令(Copy、Cut、Paste、Delete)时,直接调用 `e.DoCommand()` 方法执行相应的命令。
        case CommandType.Copy:
        case CommandType.Cut:
        case CommandType.Paste:
        case CommandType.Delete:
            e.DoCommand();
            break;
        default:
            break;
    }
}