So speichern Sie das Grafikobjekt als Bild in C #?

8

Ich habe Panel und verschiedene Steuerelemente darauf. Ich möchte ein Bild dieses Panels in einer Datei speichern, wie kann ich das tun?

Ich muss etwas wie Screenshot machen, aber ich brauche nur ein Bild von einem bestimmten Panel in meiner Anwendung und ich möchte dies auf Knopfdruck in meiner App tun.

Mit freundlichen Grüßen, Primoz

BEARBEITEN: Ich zeichne auch auf diesem Panel mit diesem Code

%Vor%

Aber dann bekomme ich das nicht ins Bild. Warum und wie behebt man das?

EDIT 2:

%Vor%

Dies ist mein Zeichencode, um eine benutzerdefinierte Linie in ein Diagramm zu zeichnen. Kannst du mir bitte helfen, es richtig zu machen?

    
Primoz 12.11.2010, 11:38
quelle

2 Antworten

14

Verwenden Sie die Control.DrawToBitmap () -Methode. Zum Beispiel:

%Vor%     
Hans Passant 12.11.2010, 11:49
quelle
3

Als Reaktion auf Ihre Bearbeitung:

Wenn Sie mit einem Graphics -Objekt, das von der CreateGraphics -Methode zurückgegeben wird, auf dem Panel zeichnen, sind Ihre Grafiken nicht permanent. Alles, was Sie auf dem Objekt zeichnen, wird beim nächsten Mal, wenn das Steuerelement neu gezeichnet wird, gelöscht. (Für weitere Informationen zu diesem Thema, siehe: Ссылка und Ссылка )

Wenn Sie die Methode DrawToBitmap verwenden, wie sie von Hans Passant vorgeschlagen wurde, wird das Steuerfeld neu gezeichnet, wodurch Ihre Zeichnungen verloren gehen.

Wenn Sie jedoch möchten, dass Ihre Zeichnungen dauerhaft sind, müssen Sie die Paint Ereignis des Panel-Steuerelements. Dieses Ereignis wird jedes Mal ausgelöst, wenn das Steuerelement neu gezeichnet werden muss, und stellt eine Instanz von PaintEventArgs bereit, die ein Graphics -Objekt enthält, mit dem Sie permanent auf der Oberfläche des Steuerelements auf die gleiche Weise zeichnen können wie mit Graphics -Objekt, das von der CreateGraphics -Methode zurückgegeben wird.

Sobald Sie Ihren Zeichnungscode korrigiert haben, können Sie die Lösung von Hans verwenden.

    
Cody Gray 12.11.2010 12:31
quelle

Tags und Links