Seeking Font Strategies for Silverlight Apps
As I'm working through an SL3/SL4 application, and starting to work with fonts, I'm finding a lack of documentation and best practices on font strategies. For example:
- Are there common fallback fonts for the supported font set (Arial, Comic Sans MS, etc.)? Is there a set of recommendations on fallback fonts between Windows and Macintosh systems?
- Are there Silverlight-supported fonts that will (almost always) be on an end-user system, or like 99.5% of the time, like "Times New Roman" or "Verdana", including Macintosh? Are there any sites that list this kind of information?
- Are there recommendations for accounting for Moonlight (Linux) views of SL apps and the fonts that are/aren't deployed with Linux systems?
- Is there a way to determine, in XAML or code-behind, if an end-user has a supported font on their system? I'd like this to run upon entry and then change the XAML as a result of findings to support the right font or allow an embedded one to load.
- In the documentation for supported fonts, it lists a bunch of fonts that "Silverlight text elements can use the following Latin fonts if availa开发者_StackOverflow中文版ble on the local computer.". Does this mean that if I use a font that is not in this list, such as "Cooper Black", and an end-user does have this font on their system, they will still need to download the font as embedded in my application?
Any links or pointers that can lead to at least some of the questions above answered would be very appreciated.
Ok, here we go. These should get you closer to where you want to be:
- This is the same as CSS - you'll need to account for 'font stacks'. This is one of the best pages I've seen on the subject: Guide to CSS Font Stacks: Techniques and Resources
- This link is from November 2007 but it still has a great listing: Complete Guide to Pre-Installed Fonts in Linux, Mac, and Windows
- The link in #2 is the same - it covers Linux.
- Not sure about this one. Sorry :-(
- I believe that is correct, Silverlight only looks for fonts on the end user system that it will natively support. Otherwise, it will need to download the font.
I think you should split your ApplicationFonts into different packages using MEF (which will be included in the CLR of the upcoming Microsoft .NET Framework 4). So depending on the Users OS it should load the different Font Packages that you need to embed.
精彩评论