c# - 如何用鼠标在现有的pdf中绘制矩形
问题描述
我不知道我写的是否正确,这是我尝试过的:
private void pdf_Paint(object sender, PaintEventArgs e)
{
PdfLoadedDocument load = new PdfLoadedDocument(@"C:\Users\Afiqah\Downloads\17DDT17F1016.pdf");
PdfLoadedPage page = load.Pages[0] as PdfLoadedPage;
PdfGraphics graphics = page.Graphics;
graphics.DrawRectangle(pen, rec);
}
private void pdf_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
rec = new Rectangle(e.X, e.Y, 0, 0);
this.Invalidate();
}
if (e.Button == MouseButtons.Right)
{
MDown = e.Location;
}
}
private void pdf_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
rec.Width = e.X - rec.X;
rec.Height = e.Y - rec.Y;
this.Invalidate();
}
if (e.Button == MouseButtons.Right)
{
rec.Location = new Point((e.X - MDown.X) + rec.Left, (e.Y - MDown.Y) + rec.Top);
MDown = e.Location;
this.Invalidate();
}
}
解决方案
推荐阅读
- alexa - 为什么我的 Alexa Skill 停止并发出错误声音?
- javascript - PHPMailer SMTP 问题 - 收到信件但网站上有错误
- angular - Angular 路由器导航仅在第二次提交后才有效
- blockchain - 如何使用计算机代码生成比特币地址?
- c# - 将值从一个 Blazor 组件传递到另一个通用列表
- salesforce - SalesForce Rest API 调用每小时限制
- regex - 需要正则表达式来匹配电子邮件至:
- c++ - STL图合成
- php - 编辑个人资料不会编辑 laravel
- c - Ubuntu C 如何使用 SIGTSTP 停止子进程,然后使用 SIGCONT 恢复它?