You can define several fonts in the Theme.xml. Here is an excerpt of the WindowsPhone7 example theme:
01....
02. <Fonts>
03. <Font Name="Segoe15" File="Segoe15.spritefont" IsDefault="True"/>
04. <Font Name="Segoe17" File="Segoe17.spritefont"/>
05. <Font Name="Segoe17Semilight" File="Segoe17Semilight.spritefont"/>
06. <Font Name="Segoe19" File="Segoe19.spritefont"/>
07. <Font Name="Segoe19Semibold" File="Segoe19Semibold.spritefont"/>
08. <Font Name="Segoe24Semilight" File="Segoe24Semilight.spritefont"/>
09. <Font Name="Segoe32Semilight" File="Segoe32Semilight.spritefont"/>
10. <Font Name="Segoe54" File="Segoe54.spritefont"/>
11. </Fonts>
12.
13....
14. <Styles>
15....
16.
17. <Style Name="TextBlockLarge" Inherits="TextBlock">
18. <Font>Segoe24Semilight</Font>
19. <State Name="Default" />
20. <State Name="Disabled">
21. <Foreground>255;255;255;102</Foreground>
22. </State>
23. </Style>
24.
25.
26. <Style Name="TextBlockExtraLarge" Inherits="TextBlock">
27. <Font>Segoe32Semilight</Font>
28. <State Name="Default" />
29. <State Name="Disabled">
30. <Foreground>255;255;255;102</Foreground>
31. </State>
32. </Style>
33....
At runtime you can get the fonts from the renderer: method IUIRenderer.GetFont().
At runtime the fonts are stored in the theme class: property Theme.Fonts