C#, WPF, vb.Net, vba, SQL Server, Access Programmierer, Excel, ASP Core MVC Webforms Telefon: 07022/9319004 freib. Software Entwickler   Kontakt
#

WPF: Speichern des Hintergrunds einer Windows App als ScreenShot

 

Der folgendene C# Code speichert den aktuellen Hintergrund oder die Darstellung einer Windows 32 WPF App als Bitmap

Dieses Beispiel zeigt auch, dass nur die App Anwendung erfasst wird und nicht der dahinter liegende Desktop Hintergrund.

 

C# Code zum Rendern:

Schritt 1: erstellen eines Renderers

Schritt 2: Ausgabe als Bitmap

Schritt 3: Speichern der Bitmap als File

 

 

Beim verwenden eines durchsichtigen Hintergrundes wird dennoch nur bis zur App gerendert.

Man kann also weder in UWP noch WPF den Hintergrund des Desktops damit erfassen

 

 

C# Code zum Rendern:

Schritt 1: erstellen eines Renderers

Schritt 2: Ausgabe als Bitmap

Schritt 3: Speichern der Bitmap als File

//*render a xaml Element to a Bitmap File

//< render >

RenderTargetBitmap bitmap_Renderer = new RenderTargetBitmap((int) element.RenderSize.Width, (int)element.RenderSize.Height,96, 96, PixelFormats.Pbgra32);

bitmap_Renderer.Render(element);

//</ render >

 

//< get Bitmap >

BitmapFrame outputFrame = BitmapFrame.Create(bitmap_Renderer);

//</ get Bitmap >

 

//< save as File >

PngBitmapEncoder encoder = new PngBitmapEncoder();

encoder.Frames.Add(outputFrame);

 

using (var file = File.OpenWrite("C:\\_Daten\\Desktop\\Neuer Ordner\\TestImage.png"))

{

    encoder.Save(file);

}

//</ save as File >

 

 

 

 

Completter C# Code

private void btnScreenShot_Click(object sender, RoutedEventArgs e)

{

render_UIElement_to_Bitmap_File(this);

//RenderVisual(this);

}

 

 

 

public void render_UIElement_to_Bitmap_File(UIElement element)

{

//-----------------< render_UIElement_to_Bitmap_File() >-----------------

//*render a xaml Element to a Bitmap File

//< render >

RenderTargetBitmap bitmap_Renderer = new RenderTargetBitmap((int) element.RenderSize.Width, (int)element.RenderSize.Height,96, 96, PixelFormats.Pbgra32);

bitmap_Renderer.Render(element);

//</ render >

 

//< get Bitmap >

BitmapFrame outputFrame = BitmapFrame.Create(bitmap_Renderer);

//</ get Bitmap >

 

//< save as File >

PngBitmapEncoder encoder = new PngBitmapEncoder();

encoder.Frames.Add(outputFrame);

 

using (var file = File.OpenWrite("C:\\_Daten\\Desktop\\Neuer Ordner\\TestImage.png"))

{

    encoder.Save(file);

}

//</ save as File >

//-----------------</ render_UIElement_to_Bitmap_File() >-----------------

}

 

Mobile
»
WPF/UWP: Canvas mit relativen Positionen und Größen
»
C#, WPF, UWP: ScreenShot einer App oder Fenster-Bereich als Datei speichern
»
C#: Windows ScreenShot als Datei speichern
»
WPF Color Picker on a White-Black Color Cube
»
WPF: ColorWheel in C# zeichnen
»
WPF: Snap Element Size to Next Lines
»
WPF Code: Usercontrol mit anpassbarer Größe zur Laufzeit
»
WPF: Speichern des Hintergrunds einer Windows App als ScreenShot
»
WPF: Transparentes Fenster App erstellen
»
WPF: Relative Position eines Elements ermitteln

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Raimund.Popp@Microsoft-Programmierer.de