Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>This may sound trite but - There is no free lunch. </p> <p>I have worked on <a href="http://globible.com" rel="noreferrer">this</a> for the past two years. That product consists of 4 browsers whose interfaces are primarily ZUIs. All but the Atlas use Visuals for their graphic rendering and there were a lot of lessons learned and a few deadends.</p> <p>1) FrameworkElements are not your friend. The FE engine on a modern GFX card and CPU maxes out at about 500-600 elements, but it depends on their complexity. FE's are about 10x as heavy as Visuals.</p> <p>2) Text will significantly impact your framerate. Rendering curves are <strong>expensive</strong> See <a href="http://blog.nerdplusart.com/archives/making-the-most-of-silverlight-text-rendering" rel="noreferrer">Robby Ingebretsens post</a> for hints on using animated text</p> <p>3) Culling is important, but adding/removing from the VisualTree is <strong>expensive</strong>. Collapsing/Hiding is kind of a compromise.</p> <p>4) In WPF 3.5 you have 2 choices - Program down to the Visuals layer or use something like the <a href="http://blogs.msdn.com/greg_schechter/archive/2007/10/26/enter-the-planerator-dead-simple-3d-in-wpf-with-a-stupid-name.aspx" rel="noreferrer">Planerator</a> then manipulate the camera to Pan and Zoom but it requires your users have a good gfx card.</p> <p>5) In WPF 4.0 things are much better due to something called <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.bitmapcache%28VS.100%29.aspx" rel="noreferrer">Cached Composition</a>. It works for the same reason the Planerator works. The GFX card is rendering your controls to a bitmap and is panning zooming the bitmap. </p> <p>Using this in 4,0 is easy - Setup <code>.CacheMode</code> for your most expensive FrameworkElements and things will get a lot faster. You also have the ability to control how text is anti-aliased and the scales at which bitmaps will get regenerated (<code>EnableClearType</code> and <code>RenderAtScale</code>) </p> <p>In my Atlas browser I could display well over 700 pieces of text + simple rectangles without losing interactivity of panning and zooming. Before 4 the map was unusable.</p> <p>Getting better interactive performance takes time, targets and measurement. Good luck.</p> <p><a href="http://blogs.msdn.com/b/kaelr/" rel="noreferrer">Kael Rowan</a> has an excellent series of articles on a ZoomableCanvas he is working on. It uses a Quadtree and PriorityQueue for implementation and will let you implement semantic zoom.</p> <p><strong>Update: 8-07-10 Added Text hints and ZoomableCanvas links</strong></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