I need to constantly display large amounts of colored text in WPF or Silverlight, and I need the user to percieve it as showing up instantly.
Currently I'm doing this using a canvas and textblocks, one textblock per 80-character line, with multiple runs to a textblock to handle the different colors. There can often be 20+ runs to a line.
In a 45x80 grid of text, this gets a framerate of about 12 in Silverlight, which is sluggish. Oddly enough, it's even slower in WPF... I can only speculate that this has something to do with my dev machine's lousy video card. Maybe it's trying to hardware accelerate and actually slowing down because of it?
So, my question is: is there a better way to do this?