Je pense que ce que vous demandez, c'est que vous voulez un fichier code-behind pour un ResourceDictionary. Vous pouvez totalement le faire! En fait, vous procédez de la même manière que pour une fenêtre:
Supposons que vous ayez un ResourceDictionary appelé MyResourceDictionary. Dans votre fichier MyResourceDictionary.xaml, placez l'attribut x: Class dans l'élément racine, comme ceci:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MyCompany.MyProject.MyResourceDictionary"
x:ClassModifier="public">
Ensuite, créez un code derrière le fichier appelé MyResourceDictionary.xaml.cs avec la déclaration suivante:
namespace MyCompany.MyProject
{
partial class MyResourceDictionary : ResourceDictionary
{
public MyResourceDictionary()
{
InitializeComponent();
}
... // event handlers ahead..
}
}
Et tu as fini. Vous pouvez mettre ce que vous voulez dans le code derrière: méthodes, propriétés et gestionnaires d'événements.
== Mise à jour pour les applications Windows 10 ==
Et juste au cas où vous joueriez avec UWP, il y a encore une chose à savoir:
<Application x:Class="SampleProject.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:rd="using:MyCompany.MyProject">
<!-- no need in x:ClassModifier="public" in the header above -->
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- This will NOT work -->
<!-- <ResourceDictionary Source="/MyResourceDictionary.xaml" />-->
<!-- Create instance of your custom dictionary instead of the above source reference -->
<rd:MyResourceDictionary />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>