[英]Convert Windows Form Screenshot Application To ASP.NET
我是一位C#ASP.NET开发人员,他试图创建一个Web应用程序,允许用户指定屏幕区域并对其进行屏幕捕获。 我发现了很多javascript和jquery解决方案,但我认为它们太复杂了,我缺乏与它们一起使用的javascript技能。 我在MSDN上找到了以下代码:
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Printing;
public class Form1 :
Form
{
private Button printButton = new Button();
private PrintDocument printDocument1 = new PrintDocument();
public Form1()
{
printButton.Text = "Print Form";
printButton.Click += new EventHandler(printButton_Click);
printDocument1.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
this.Controls.Add(printButton);
}
void printButton_Click(object sender, EventArgs e)
{
CaptureScreen();
printDocument1.Print();
}
Bitmap memoryImage;
private void CaptureScreen()
{
Graphics myGraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
}
private void printDocument1_PrintPage(System.Object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
public static void Main()
{
Application.Run(new Form1());
}
}
我将代码放在ASP.NET中的代码中,并在项目中添加了对WindowsFormIntegration的引用,但是在运行它时出现错误:
CS1061:“ ASP.default2_aspx”不包含“ printButton_Click”的定义,并且找不到扩展方法“ printButton_Click”接受类型为“ ASP.default2_aspx”的第一个参数(您是否缺少using指令或程序集引用?)
这是.aspx代码:
<body bgcolor="Silver">
<form id="form1" runat="server">
<br />
<h2 style="color: #808000; font-size: x-large; font-weight: bolder;">
Article by Vithal Wadje</h2><br />
<asp:Label style="color: #808000;" ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<div>
<br />
<asp:Button
ID="printButton" runat="server"
onclick="printButton_Click" />
</div>
</form>`enter code here`
</body>
</html>
我不熟悉Windows窗体,因此不确定是否应该放弃使用此MSDN示例https://msdn.microsoft.com/zh-cn/library/fw1kt6f9.aspx ,尽管我对此不太熟悉,但还是可以看一下Silverlight 。 我正在做的工作可以转换为ASP.NET/C#吗?
提前致谢。
由于WPF / Windows窗体应用程序使用完全不同的方式与屏幕进行通信,因此无法将其立即转换为Web应用程序。
WF / WPF可以直接绘制到屏幕上,它知道屏幕并可以访问它。 Web应用程序的Web服务器没有。 他们只是输出必要的代码(HTML和Javascript)以使浏览器在屏幕上绘制。 服务器(您当前代码所在的服务器)无法读取屏幕。
出于安全原因,也无法从Web应用程序从客户端获取屏幕,因此您无法脱离浏览器中自己站点的沙箱。 尽管有一些方法可以使用HTML5和Canvas对页面进行截图。 在这里看看: 使用HTML5 / Canvas / JavaScript截屏 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.