1) Do set IsWindowless=False. There is a high performance price in rendering windowless controls. However I've found that if you do this, you might run into some problems. First, if you want your background of your SL application to be transparent, then you must set IsWindowless to True. Also, if you have HTML overlays (modals) over your SL application, you'll also need to set IsWindowless = True.
2) Do NOT set the Silverlight's HTML control background property to transparent or any variation thereof (make it opaque). If the background property is set to such, each render call will go through a blending sequence which adds to a higher CPU cost.
3) Do change the Silverlight's application default MaxFrameRate. The default value is 60. Most SL applications will look/run fine anywhere between 15 to 30. You can change the MaxFrameRate programmatically or simply markup the Silverlight HTML control.
4) Do NOT do text size animations. When you animate the size of text in SL, it uses hinting to smooth each text glyph. When animating text size, SL may drop frames due to this. If you can, use a vector graphic to represent large text animations.
5) Do use Visibility instead of Opacity whenever possible. Even if an object's opacity is set to 0, SL will still account for it and its still technically rendered. Setting the object's visibility to Collapsed will cause SL to ignore rendering the object.
6) When using the MediaElement object, do not specify its Width and Height. Let SL render the object at its natural size.
7) Do not set the Width and Height on path objects. Rely on the points defined for the path.
8) When displaying a double's value, do use Double.ToString(CultureInfo.InvariantCulture) rather than Double.ToString(). This will alleviate the need for SL to acquire the culture setting before displaying the double and CurltureInfo.InvariantCulture is optimized for perormance.
9) If your application is very large, consider loading pieces of it "on demand".