Les styles peuvent se mettre partout ... Ca va de "pour un contrôle" à "pour une application". Il est même possible d'externaliser les styles dans des assembly satellite. A ce propos, je ne peux que vous conseiller l'excellent article sur ce blog. Je ne vais pas donner ici d'endroit ou positionner vos styles mais il ne faut pas oublier qu'il existe une notion d'héritage dans ceux-ci. Je vous conseille donc de placer dans les ResourcesDictionaries vos styles pour l'application ... Ils sont accessibles facilement ... que ce soit dans le XAML ou dans le c#. Lorsque vous voulez récuperer un style défini en XAML dans votre code c#, il vous faudra cependant un minimum coder ;-). Par exemple, nous avons un dictionnaire de styles pour l'application dans un application_style.xaml en ressource.
[xml]
<Application.Resources>
    <ResourceDictionary Source="application_style.xaml"/>
</Application.Resources> 
Nous récupérons le style de notre textblock en définissant soit dans notre c# :
[csharp]
m_textBlock.Style = (Style)(Application.Current.Resources["textBlockStyle"]);
ou dans le code XAML :
[xml]
<TextBlock Name="m_textBlock" Style="{StaticResource textBlockStyle}"/>