property OnDblClick: TNotifyEvent; // published, inherited from TControl
OnDblClick 会在双击序列中的第二次 OnClick 之后触发,采用系统的双击时间和像素容差窗口。Sender 参数就是 TPdfView 本身;屏幕位置可以从 Mouse.CursorPos 取回,并用 ScreenToClient 转换为客户端坐标
在 PDF 阅读器中,这个事件的自然用途是“缩放到点”手势:用户双击文档,在适合宽度与上一个缩放级别之间切换,并可选择将视图居中到点击位置。另一个常见模式是通过调用 CharacterIndexAtPos 来选择光标下的单词,然后围绕命中的字符展开 CurrentCharIndex 和选区长度
查看器的注释或链接处理程序会先运行 — 如果用户双击的是链接,第一次点击就已经跟随了链接。因而双击最好留给不会与正常导航手势冲突的行为
Enabled = False 时,该事件不会触发PdfView1.CharacterIndexAtPos(Point(X, Y), PageNo) from a paired OnMouseDown handler that records the position, then act in OnDblClick.
// 在双击时切换适合宽度与 100% 缩放
procedure TForm1.PdfView1DblClick(Sender: TObject);
begin
if PdfView1.FitMode = pfmFitToWidth then
begin
PdfView1.FitMode := pfmNone;
PdfView1.Zoom := 1.0;
end
else
PdfView1.FitMode := pfmFitToWidth;
end;