C#WinForm将绘图重定向到位图,不将任何内容重定向到屏幕
我想知道是否有任何方法可以禁用winform的屏幕绘制,而只绘制位图。我实际上想要实现的是基于表单创建一个“实时图像”,但不必让表单实际可见C#WinForm将绘图重定向到位图,不将任何内容重定向到屏幕,c#,.net,winforms,drawing,C#,.net,Winforms,Drawing,我想知道是否有任何方法可以禁用winform的屏幕绘制,而只绘制位图。我实际上想要实现的是基于表单创建一个“实时图像”,但不必让表单实际可见 当表单最小化时,我尝试了DrawToBitmap,但它非常不稳定,无法工作,最终崩溃。好的,所以我最终以一种不同的方式解决了这个问题。下面的代码通过将隐藏的用户控件绘制到位图并将其用作缩略图,为您获得类似于Live Messenger的任务栏缩略图 将鼠标放在任务栏图标上仍然可以在左上角看到一些小东西。不打扰我,但请告诉我,如果你知道如何摆脱它 请确保您具
当表单最小化时,我尝试了DrawToBitmap,但它非常不稳定,无法工作,最终崩溃。好的,所以我最终以一种不同的方式解决了这个问题。下面的代码通过将隐藏的用户控件绘制到位图并将其用作缩略图,为您获得类似于Live Messenger的任务栏缩略图 将鼠标放在任务栏图标上仍然可以在左上角看到一些小东西。不打扰我,但请告诉我,如果你知道如何摆脱它 请确保您具有Microsoft提供的Windows API代码Pck以运行此操作
也许你应该解释一下“高度不稳定”和“崩溃”是什么意思。也许您使用该函数的代码中有一个bug?这很正常,但它不起作用,因为DrawToBitmap导致表单的某种最小化表示。
namespace AndreasCoroiu.Controls
{
public partial class TaskbarThumbnail : UserControl
{
TaskbarForm taskbarForm;
public TaskbarThumbnail()
{
InitializeComponent();
if (!DesignMode)
{
taskbarForm = new TaskbarForm();
TabbedThumbnail preview = new TabbedThumbnail(taskbarForm.Handle, taskbarForm.Handle);
TaskbarManager.Instance.TabbedThumbnail.AddThumbnailPreview(preview);
preview.TabbedThumbnailBitmapRequested += (o, e) =>
{
Bitmap bmp = new Bitmap(Width, Height);
DrawToBitmap(bmp, new Rectangle(new Point(0, 0), bmp.Size));
preview.SetImage(bmp);
e.Handled = true;
};
}
}
public void Show()
{
taskbarForm.Show();
}
private class TaskbarForm : Form
{
public TaskbarForm()
: base()
{
FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
Size = new System.Drawing.Size(0, 0);
}
}
}
}