2011-01-24 18 views
6

En una aplicación de Silverlight podemos definir recursos en la aplicación.xaml y tener acceso a ellos desde cualquier documento XAML, sin tener que fusionar explícitamente esos recursos.Recursos globales en una biblioteca de clases

¿Existe una solución equivalente para una biblioteca de clases? Creé un diccionario de recursos por separado en la biblioteca de clases, pero tengo que fusionarlo de la siguiente manera antes de que pueda usarlo.

<UserControl.Resources> 
<ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="MyResources.xaml" /> 
    </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 
</UserControl.Resources> 

¿Hay alguna manera de evitar esto? Es bastante tedioso hacer esto en todos los documentos XAML para recursos utilizados a nivel mundial.

Respuesta

1

Estaba a punto de hacer la misma pregunta. Desafortunadamente, lo que has descrito es bastante parecido a lo que he podido inventar. En teoría, parece que debería ser capaz de poner esto en el archivo themes \ generic.xaml de la biblioteca, pero no he podido hacer que funcione, posiblemente solo estoy haciendo algo tonto. El mejor que he podido hacer es simplemente una variante un poco más corto de lo que está haciendo, es decir, a dejar de lado la sintaxis MergedDictionaries:

<UserControl.Resources> 
    <commonui:CommonStringsPublic x:Key="commonStrings" /> 
    <ResourceDictionary Source="/Alanta.Client.UI.Common;component/CommonResources.xaml" x:Key="commonResources" /> 
</UserControl.Resources> 

Me encantaría tener a alguien que me señale a una mejor solución :-).

+0

Supongo que es lo mejor posible ... ¡Gracias! Mientras tanto, también creé una plantilla de estudio visual para crear controles de usuario que agrega este y otros códigos comunes (es decir, directivas xmlns, etc.). –

Cuestiones relacionadas