Wie kann man programmatisch ein Bild eines .Net-Steuerelements erhalten?
Antworten
Zu viele Anzeigen?Für jedes Steuerelement gibt es eine Methode namens DrawToBitmap . Dazu brauchen Sie nicht p/invoke zu verwenden.
Control c = new TextBox();
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(c.Width, c.Height);
c.DrawToBitmap(bmp, c.ClientRectangle);
Sie können ein Bild eines .NET-Steuerelements programmatisch ziemlich einfach erhalten, indem Sie die DrawToBitmap Methode der Klasse Control ab .NET 2.0
Hier ist ein Beispiel in VB
Dim formImage As New Bitmap("C:\File.bmp")
Me.DrawToBitmap(formImage, Me.Bounds)
Und hier ist es in C#:
Bitmap formImage = New Bitmap("C:\File.bmp")
this.DrawToBitmap(formImage, this.Bounds)
Control.DrawToBitmap können Sie die meisten Steuerelemente in eine Bitmap zeichnen. Dies funktioniert nicht mit RichTextBox und einigen anderen.
Wenn Sie diese oder ein Steuerelement, das eines von ihnen hat, erfassen möchten, müssen Sie PInvoke wie in diesem CodeProject-Artikel beschrieben tun: Bildeinzug
Achten Sie darauf, dass einige dieser Methoden alles erfassen, was sich auf dem Bildschirm befindet. Wenn Sie also ein anderes Fenster haben, das Ihr Steuerelement verdeckt, erhalten Sie stattdessen dieses.
- See previous answers
- Weitere Antworten anzeigen