Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>you will find lots of related question on Stack Overflow, however not all of them mention that one of the most high performance ways to draw large amounts of data to the screen is to use the <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap.aspx" rel="nofollow noreferrer">WriteableBitmap</a> API. I suggest taking a look at the <a href="https://github.com/teichgraf/WriteableBitmapEx/" rel="nofollow noreferrer">WriteableBitmapEx</a> open source project on codeplex. <em>Disclosure, I have contributed to this once, but it is not my library</em>. </p> <p>Having experimented with DrawingVisual, StreamGeometry, OnRender, Canvas, all these fall over once you have to draw 1,000+ or more "objects" to the screen. There are techniques that deal with virtualization of a canvas (there' a <a href="http://blogs.msdn.com/b/kaelr/archive/2010/08/11/zoomableapplication2-a-million-items.aspx" rel="nofollow noreferrer">million items demo</a> with Virtualized Canvas) but even this is limited to the ~1000 visible at one time before slow down. WriteableBitmap allows you to access a bitmap directly and draw on that (oldskool style) meaning you can draw tens of thousands of objects at speed. You are free to implement your own optimisations (multi-threading, level of detail) but do note you don't get much frills with that API. You literally are doing the work yourself. </p> <p>There is one caveat though. While WPF uses the CPU for tesselation / GPU for rendering, WriteableBitmap will use CPU for everything. Therefore the fill-rate (number of pixels rendered per frame) becomes the bottleneck depending on your CPU power. </p> <p>Failing that if you really need high performance rendering, I'd suggest taking a look at <a href="http://sharpdx.org/" rel="nofollow noreferrer">SharpDX</a> (Managed DirectX) and the interop with WPF. This will give you the highest performance as it will directly use the GPU. </p> <p>Best regards, </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload