Creo que lo que estás preguntando es si quieres un archivo de código subyacente para un ResourceDictionary. ¡Puedes hacer esto totalmente! De hecho, lo haces de la misma manera que para una ventana:
Digamos que tiene un ResourceDictionary llamado MyResourceDictionary. En su archivo MyResourceDictionary.xaml, coloque el atributo x: Class en el elemento raíz, así:
<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">
Luego, cree un código detrás del archivo llamado MyResourceDictionary.xaml.cs con la siguiente declaración:
namespace MyCompany.MyProject
{
partial class MyResourceDictionary : ResourceDictionary
{
public MyResourceDictionary()
{
InitializeComponent();
}
... // event handlers ahead..
}
}
Y tu estas listo. Puede poner lo que desee en el código: métodos, propiedades y controladores de eventos.
== Actualización para aplicaciones de Windows 10 ==
Y en caso de que estés jugando con UWP, hay una cosa más a tener en cuenta:
<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>