Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

For a screenshot of WPF content, render the target Visual into a RenderTargetBitmap, encode that bitmap with PngBitmapEncoder, and save the stream. Capture only after the visual has completed layout and reached the state you want to document. This approach produces a deterministic image of the WPF visual tree, not automatically every pixel visible on the monitor.

The standard WPF capture pipeline

WPF already includes the APIs needed for control, panel, and window screenshots. The complete sequence is:

  1. Choose the capture boundary, such as a control, panel, or Window.
  2. Ensure the target has been measured, arranged, and rendered.
  3. Create a RenderTargetBitmap with the desired pixel dimensions, DPI, and pixel format.
  4. Call Render with the target Visual.
  5. Create a BitmapFrame, add it to a PngBitmapEncoder, and save the stream.

Microsoft defines RenderTargetBitmap as converting a Visual object into a bitmap. Because it renders the WPF visual tree in process, it is usually the right choice for ordinary WPF controls and composed layouts.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Minimal C# method: save any WPF visual as PNG

This method accepts any Visual, including a Grid, Border, user control, or window. The width and height arguments are output pixels.

#1 Best Overall
Wacom Intuos Small, Wired Graphic Drawing Tablet with Pen + Software
  • Wacom Intuos Small Graphics Drawing Tablet: Enjoy industry leading tablet performance in superior control and precision with Wacom's EMR, battery free technology that feels like pen on paper
  • Works With All Software: Wacom Intuos tablet can be used in any software program to explore new facets of digital creativity; draw, paint, edit photos/videos, create designs, and mark up documents
  • What the Professionals Use: Wacom's industry leading pen technology and pen to paper feeling makes it the preferred drawing tablet of professional graphic designers
  • Software and Training Included: Only Wacom gives you software with every purchase. Register your Intuos tablet and gain access to some of the best creative software and Wacom's online training
  • Wacom is the Global Leader in Drawing Tablet and Displays: For over 40 years in pen display and tablet market, you can trust that Wacom to help you bring your vision, ideas and creativity to life
using System.IO;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;

public static class WpfScreenshot
{
    public static void SaveVisualPng(
        Visual visual,
        int pixelWidth,
        int pixelHeight,
        string path)
    {
        if (visual == null) throw new ArgumentNullException(nameof(visual));
        if (pixelWidth <= 0) throw new ArgumentOutOfRangeException(nameof(pixelWidth));
        if (pixelHeight <= 0) throw new ArgumentOutOfRangeException(nameof(pixelHeight));
        if (string.IsNullOrWhiteSpace(path)) throw new ArgumentException("A file path is required.", nameof(path));

        var bitmap = new RenderTargetBitmap(
            pixelWidth,
            pixelHeight,
            96,
            96,
            PixelFormats.Pbgra32);

        bitmap.Render(visual);

        var encoder = new PngBitmapEncoder();
        encoder.Frames.Add(BitmapFrame.Create(bitmap));

        using var stream = File.Create(path);
        encoder.Save(stream);
    }
}

Call it on the UI thread after the target has a real layout size:

SaveVisualPng(MyPanel, 1200, 700, @"C:Temppanel.png");

If you need to display the result instead of writing a file, retain the RenderTargetBitmap as a BitmapSource and assign it to an Image.Source.

Capture at the control’s current layout size

WPF layout dimensions are device-independent units (1/96 inch), while a bitmap constructor expects pixel dimensions. Convert ActualWidth and ActualHeight to pixels using the visual’s DPI scale when you want a screenshot that matches the currently arranged control.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
using System;
using System.Windows;
using System.Windows.Media;

public static void SaveAtLayoutSize(FrameworkElement element, string path)
{
    if (element == null) throw new ArgumentNullException(nameof(element));
    if (element.ActualWidth <= 0 || element.ActualHeight <= 0)
        throw new InvalidOperationException("The element has not been arranged or has no visible size.");

    var source = PresentationSource.FromVisual(element);
    var matrix = source?.CompositionTarget?.TransformToDevice ?? Matrix.Identity;
    int width = Math.Max(1, (int)Math.Round(element.ActualWidth * matrix.M11));
    int height = Math.Max(1, (int)Math.Round(element.ActualHeight * matrix.M22));

    WpfScreenshot.SaveVisualPng(element, width, height, path);
}

Using 96 DPI explicitly is also valid when you deliberately want a 96-DPI output. The constructor’s pixel width, pixel height, DPI, and pixel format all affect the resulting bitmap, so choose them as part of your output specification rather than treating them as incidental values.

Capture after layout and visual state changes

A screenshot taken immediately after changing data, visibility, or styles can be blank or stale because WPF has not completed its layout pass. Schedule the capture at a later dispatcher priority after applying the state you intend to document.

private async void CaptureButton_Click(object sender, RoutedEventArgs e)
{
    StatusText.Text = "Ready for capture";
    DetailsPanel.Visibility = Visibility.Visible;

    await Dispatcher.InvokeAsync(
        () => { },
        System.Windows.Threading.DispatcherPriority.Render);

    SaveAtLayoutSize(DetailsPanel, @"C:Tempdetails.png");
}

For a window that has just been shown, wait until it is loaded and arranged. Do not call capture from a background thread: WPF visuals have thread affinity, and rendering them must be coordinated with the UI dispatcher.

Rank #2
Wacom Intuos Medium, Bluetooth Graphic Drawing Tablet with Pen + Software
  • Wacom Intuos Medium Bluetooth Graphics Drawing Tablet: Enjoy industry leading tablet performance in superior control and precision with Wacom's EMR battery free technology that feels like pen on paper
  • Works With All Software: Wacom Intuos tablet can be used in any software program to explore new facets of digital creativity; draw, paint, edit photos/videos, create designs, and mark up documents
  • Wireless Superior Connectivity: Connect wirelessly via Bluetooth or directly using USB-A cable which enables you to work, draw or create whether it's at a desk, on the sofa, in classrom or even outside
  • Software and Training Included: Only Wacom gives you software with every purchase. Register your Intuos tablet and gain access to some of the best creative software and Wacom's online training
  • Wacom is the Global Leader in Drawing Tablet and Displays: For over 40 years in pen display and tablet market, you can trust that Wacom to help you bring your vision, ideas and creativity to life

Choosing the capture boundary

One control or panel

Pass the control itself to Render when you need only that region. This excludes neighboring elements and gives you a reusable component-level image.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The complete WPF window

Pass the window (or its root panel) when the screenshot should include the entire WPF-composed client area. Make sure the window has a nonzero arranged size before calculating dimensions.

A ScrollViewer: viewport versus full content

Rendering the ScrollViewer captures its arranged viewport, generally showing only what is visible in that visual. To create a full-document image, capture the content element after arranging it at its full desired size. A common pattern is to temporarily measure and arrange the content at an unconstrained or explicitly chosen width and height, render that content, then restore the normal viewport arrangement. This should be done carefully because changing arrangement can affect the live UI.

Popups, menus, and separate windows

RenderTargetBitmap follows the visual tree you pass to it. A popup hosted separately, another top-level window, desktop overlays, and pixels belonging to other HWNDs are not automatically included merely because they appear over your window. Capture each WPF visual separately or use a window/monitor capture API when the requirement is the displayed HWND or monitor image.

PNG, JPEG, and other encoders

PNG is the safest default for WPF text, icons, charts, and flat-color interfaces because it is lossless. The rendering step is independent of the file format: after creating a BitmapFrame, choose another BitmapEncoder when storage size or photographic compression matters.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
var encoder = new JpegBitmapEncoder
{
    QualityLevel = 90
};
encoder.Frames.Add(BitmapFrame.Create(bitmap));
using var stream = File.Create(@"C:Tempwindow.jpg");
encoder.Save(stream);

JPEG introduces lossy compression and is usually a poor choice for small text or sharp one-pixel lines. Keep PNG for documentation and visual regression references unless you have a specific reason to trade fidelity for file size.

Rank #3
Sale
Wacom Intuos Pro Medium, Bluetooth Graphic Drawing Tablet with ProPen 3
  • WACOM’S BEST PEN TECHNOLOGY: Pro Pen 3 offers amazing precision, 8192 pressure levels, tilt support & lag-free tracking for smooth, precise strokes; choose slim, straight or flared grip, adjust balance & button layout for precision and comfort
  • DIAL INTO PRODUCTIVITY: Speed up and stay in the creative flow with 10 customizable tablet ExpressKeys & 2 mechanical dials conveniently located at the top of the tablet and close to your keyboard for efficiency
  • DESIGNED FOR MODERN MONITORS: With a versatile 16:9 format perfect for multiple monitors and wide displays; medium size has a large active area with a small footprint 11.4 x 8.1” / 291 x 206 mm
  • SLEEK AND STURDY: Measuring 4mm at its thinnest this professional-grade drawing tablet feels like pen-on-paper on your desk, combined with the robust durability of magnesium making it equally suited for your office or life on the go
  • WIRELESS FREEDOM: use Intuos Pro with USB or connect wirelessly via Bluetooth to multiple computers with a simple switch

Output size, DPI, and pixel format

  • Pixel dimensions: Larger dimensions preserve more detail but consume more memory and take longer to encode.
  • DPI metadata: The DPI arguments describe the bitmap’s resolution metadata; they do not replace choosing adequate pixel dimensions.
  • PixelFormats.Pbgra32: A practical 32-bit format for WPF rendering, including premultiplied alpha.
  • Transparency: Transparent regions can remain transparent when the visual and pixel format support alpha. If you require a solid background, put the visual over a background element before rendering.

For a retina-style asset, multiply the layout dimensions by the device scale or by your chosen scale factor and pass those larger pixel values to RenderTargetBitmap. Do not confuse a larger bitmap with a different logical WPF size.

When RenderTargetBitmap is not enough

Displayed window or monitor pixels

If the requirement is “what the user sees on a monitor,” including non-WPF content, other HWNDs, shadows, or desktop overlays, use a Windows Graphics Capture or equivalent window/monitor API. Those APIs target a specific HWND or HMONITOR, whereas RenderTargetBitmap targets a WPF visual tree.

D3DImage and Direct3D content

Direct3D interop needs separate validation. WPF can invoke software rendering, and Microsoft documents that a D3DImage may not appear when WPF is rendering completely in software. Test screenshots containing Direct3D surfaces on the hardware and rendering mode used in deployment. A blank 3D region does not necessarily indicate that the PNG encoder failed.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Timing-sensitive visuals

Animations, asynchronous images, delayed data templates, and state transitions can legitimately be missing if the capture runs too early. Coordinate the call with the UI thread and wait for the specific state—not merely an arbitrary sleep—whenever possible.

Troubleshooting blank, cropped, or incorrect images

The PNG is blank

  • Check that the visual has nonzero ActualWidth and ActualHeight.
  • Capture after Loaded and a render-priority dispatcher pass.
  • Verify that the target is visible and that you passed the intended root visual rather than an empty container.
  • For D3DImage, test hardware/software rendering modes separately.

The image is the wrong size

  • Do not pass device-independent dimensions as though they were physical pixels when a specific output size is required.
  • Use ActualWidth/ActualHeight with the visual’s device transform for a current-layout screenshot.
  • Ensure the element has completed arrange before reading its dimensions.

Content is clipped

You probably rendered a viewport such as a ScrollViewer. Render the fully arranged content element for a long image, or capture the viewport intentionally if only the visible region is wanted.

A popup or overlay is missing

Confirm whether it belongs to the visual tree being rendered. Separately hosted popups and windows require separate capture or a window-level API.

Rank #4
Wacom Intuos Small, Bluetooth Graphic Drawing Tablet with Pen + Software
  • Wacom Intuos Small Bluetooth Graphics Drawing Tablet: Enjoy industry leading tablet performance in superior control and precision with Wacom's EMR, battery free technology that feels like pen on paper
  • Works With All Software: Wacom Intuos tablet can be used in any software program to explore new facets of digital creativity; draw, paint, edit photos/videos, create designs, and mark up documents
  • Wireless Superior Connectivity: Connect wirelessly via Bluetooth or directly using USB-A cable which enables you to work, draw or create whether it's at a desk, on the sofa, in classroom or even outside
  • Software and Training Included: Only Wacom gives you software with every purchase. Register your Intuos tablet and gain access to some of the best creative software and Wacom's online training
  • Wacom is the Global Leader in Drawing Tablet and Displays: For over 40 years in pen display and tablet market, you can trust that Wacom to help you bring your vision, ideas and creativity to life

The file cannot be saved

  • Check that the destination directory exists and the process has write permission.
  • Dispose the file stream through using, as shown above, so the file is closed promptly.
  • Save to a new path while diagnosing file locks from another process.

Text looks soft

Increase output pixel dimensions rather than relying only on DPI metadata. Also avoid JPEG for text-heavy UI and inspect whether scaling between layout units and pixels is introducing interpolation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Performance and reliability practices

  • Capture only the visual boundary you need; rendering a small panel is cheaper than rendering an entire complex window.
  • Avoid repeated high-resolution captures on the UI thread during animation. Queue or throttle them when producing a sequence.
  • Reuse the same capture policy—dimensions, DPI, pixel format, and encoder choice—when generating comparable images.
  • Write files asynchronously only after the bitmap has been rendered, but keep all visual access and rendering on the UI thread.
  • Use deterministic application state for tests: fixed data, stable window size, loaded fonts, and completed asynchronous content.
  • Release streams and any temporary resources promptly; very large bitmaps can put significant pressure on process memory.

Or skip the browser setup

If what you actually need is a screenshot of a public web page rather than a WPF visual tree, ScreenshotNeo provides a single HTTP request that returns PNG, JPEG, WebP, or PDF. Its capture service accepts cookie and consent banners before removing more than 60 known consent platforms, newsletter popups, and chat widgets. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing result.

With the API, the equivalent one-call capture is:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the parameter reference and complete options in the ScreenshotNeo documentation. The service also offers an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. Every plan includes features such as full-page capture with lazy images, CSS-selector element capture, device presets, custom viewport and retina scale, PDF controls, custom CSS and JavaScript, clicks, waits, request blocking, headers, cookies, user agents, authorization, timezone and geolocation, transparent backgrounds, resizing, configurable caching, signed links, asynchronous webhooks, bulk capture of up to 100 URLs per call, usage reporting, and an OpenAPI specification. Common parameter names used by other screenshot APIs also work.

Plan Included shots Price
Free 1,000 per month $0, no card
Starter 3,000 $5
Growth 15,000 $15
Pro 60,000 $39
Scale 250,000 $99
Business 1,000,000 $249

Yearly billing gives two months free, and every feature is available on every plan. Create a free ScreenshotNeo account to get 1,000 screenshots each month without adding a card.

FAQ

Can I capture a WPF control without showing a window?

Yes, provided the control has been measured and arranged. Render the control or its parent visual after layout; an unarranged element has no meaningful dimensions to capture.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Does RenderTargetBitmap include the mouse cursor?

No. It renders the WPF visual tree, not the operating-system cursor or arbitrary desktop pixels.

Can I return the bitmap from a method instead of saving it?

Yes. Return the RenderTargetBitmap or a BitmapSource, then bind it to an Image, encode it later, or pass it to another in-process image workflow.

Best Value
Wacom Cintiq 16, Drawing Tablet with QHD Screen & Pro Pen 3
  • IMMERSIVE CREATIVE CANVAS: 16" IPS display with 2.5K WQXGA resolution (2560 x 1600) delivers sharp, crisp, detailed visuals for digital art and design
  • WACOM’S BEST PEN TECHNOLOGY: Pro Pen 3 with 8192 pressure levels responds to your lightest touch; includes tilt support, 3 shortcut keys for tool access, and a holder that mounts to either side of the display with adjustable angle for quick access
  • CINEMATIC COLOR DISPLAY: 99% DCI-P3 and 100% sRGB coverage with 8-bit color depth delivers the wide color gamut used in modern displays and digital media - see your artwork as it's meant to be viewed
  • READY TO CREATE: Built-in fold-out legs provide a 20-degree working angle or purchase adjustable stand for personalized comfort
  • CONNECTION: includes USB-C cable to connect to Windows/Mac computers with DisplayPort Alt Mode or Thunderbolt 3 or 4 input (computers without DP Alt or TB 3 or 4 input require additional cables)

Is a screenshot of a WPF window the same as a monitor screenshot?

No. A WPF visual capture is layout-driven and limited to the visual tree you render. A monitor capture includes compositor output and other desktop content, so it requires a different API.

Frequently Asked Questions

Can I capture a WPF control without showing a window?

Yes, provided the control has been measured and arranged. Render the control or its parent visual after layout; an unarranged element has no meaningful dimensions to capture.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Does RenderTargetBitmap include the mouse cursor?

No. It renders the WPF visual tree, not the operating-system cursor or arbitrary desktop pixels.

Can I return the bitmap from a method instead of saving it?

Yes. Return the RenderTargetBitmap or a BitmapSource, then bind it to an Image, encode it later, or pass it to another in-process image workflow.

Is a screenshot of a WPF window the same as a monitor screenshot?

No. A WPF visual capture is layout-driven and limited to the visual tree you render. A monitor capture includes compositor output and other desktop content, so it requires a different API.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.