Nicholas Hill
Nicholas Hill

Reputation: 221

Best way to constantly draw large numbers of bitmaps in WPF?

I am stumped by this very simple problem. I am making a tile-based game engine and need to be able to allow a user to edit the map using a WPF User Interface. Naively, I had assumed that I could simply constantly update a good old fashioned "buffered" System.Drawing.Graphics.Bitmap using Graphics.FromImage. I would draw onto the bitmap the tiles that make up the map, and then blit the buffer Bitmap to the screen. However, from my thorough research I now believe that it isn't that easy at all.

Rather than bore you with what I've found out so far (that either doesn't work, or is incredibly slow), may I ask very simply, what is the best way for continuously drawing large numbers of bitmaps efficiently via a WPF UI?

I will accept such suggestions as "go back to Windows Forms". If that's the case, then I am going to be very dissapointed with WPF!

Upvotes: 5

Views: 1958

Answers (2)

Bradley Grainger
Bradley Grainger

Reputation: 28162

The WriteableBitmap class is a high-performance WPF-compatible bitmap that allows direct access to its bits. This MSDN documentation page contains a fairly thorough example of using it.

Upvotes: 3

Tom Dudfield
Tom Dudfield

Reputation: 3107

Freezable can make a big difference to performance when dealing with Bitmaps, you can then also load the buffer using a background thread to stop the UI locking up.

This tutorial covers the basics

Upvotes: 0

Related Questions