encontrará muchas preguntas relacionadas sobre Desbordamiento de pila, sin embargo, no todas mencionan que una de las formas de mayor rendimiento para atraer grandes cantidades de datos a la pantalla es usar la API WriteableBitmap. Sugiero echar un vistazo al proyecto de código abierto WriteableBitmapEx en codeplex. Divulgación, he contribuido a esto una vez, pero no es mi biblioteca.
Después de haber experimentado con DrawingVisual, StreamGeometry, OnRender, Canvas, todo esto se cae una vez que tiene que dibujar 1,000+ o más "objetos" en la pantalla. Hay técnicas que se ocupan de la virtualización de un lienzo (hay un million items demo con lienzo virtualizado) pero incluso esto se limita a los ~ 1000 visibles a la vez antes de disminuir la velocidad. WriteableBitmap le permite acceder directamente a un mapa de bits y recurrir a ese (estilo oldskool), lo que significa que puede dibujar decenas de miles de objetos a gran velocidad. Usted es libre de implementar sus propias optimizaciones (multi-threading, nivel de detalle), pero tenga en cuenta que no obtiene muchos lujos con esa API. Literalmente estás haciendo el trabajo tú mismo.
Sin embargo, hay una advertencia. Mientras que WPF usa la CPU para tesselation/GPU para renderizar, WriteableBitmap usará la CPU para todo. Por lo tanto, la tasa de llenado (cantidad de píxeles representados por fotograma) se convierte en el cuello de botella en función de la potencia de la CPU.
En caso de que no se necesite representación de alto rendimiento, sugiero echar un vistazo a SharpDX (DirectX administrado) y la interoperabilidad con WPF. Esto le proporcionará el máximo rendimiento, ya que usará directamente la GPU.
Saludos,
Esto suena relacionado, aunque quizás no sea exactamente lo que quiere: [Microsoft Deep Zoom] (http://msdn.microsoft.com/en-us/library/cc645050 (v = vs.95) .aspx) – Ray