Tengo un ensamblado que contiene varios controles de usuario. Para este usuario controles de la asamblea quiero tener un diccionario de recursos. Todos los controles de usuario dentro de la asamblea debe ser capaz de acceder a los recursos del diccionario. ¿Tengo que añadir

<UserControl.Resources>
  <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
      ...
    </ResourceDictionary.MergedDictionaries>
  </ResourceDictionary>
</UserControl.Resources>

para cada control de usuario que debe utilizar el diccionario de recursos, o hay alguna manera de ponerlo en un lugar y sólo hace referencia a él?

puede también hacer referencia a ella en mi aplicación principal, o que requieren un MergedDictionaries llame así?

Edit: la principal aplicación es en un proyecto independiente/asamblea de los controles de usuario.

OriginalEl autor Dan Vogel | 2009-03-31

3 Comentarios

  1. 11

    hay alguna manera de ponerlo en un lugar y sólo hace referencia a él?

    Poner combinado de los diccionarios de referencia para sus diccionarios de recursos en su Aplicación.xaml’ archivo y será accesible a través de su aplicación, no necesitará más de referencia.

    puede también hacer referencia a ella en mi aplicación principal, o que requieren un MergedDictionaries llame así?

    No el alcance de la Aplicación.xaml’ se cae de toda la aplicación, por lo que este debería funcionar bien (no para mí 🙂 ).

    Actualización: Cómo referencia diccionario de recursos almacenados los elementos de control de usuario.

    Dentro de su proyecto principal agregar una referencia para el control de usuario de la biblioteca. Los controles de usuario serán accesibles y se pueden utilizar en la aplicación como se desee.

    El proceso de agregar el diccionario de recursos de referencia en la Aplicación.xaml significa que todos los controles se puede hacer referencia a los estilos y las plantillas de datos etc. se define en los diccionarios de recursos, por lo que es simplemente una cuestión de hacer referencia a ellos:

    por ejemplo,

    Style="{StaticResource MyButtonStyle}"

    Este método funciona para las aplicaciones compuestas y regular las aplicaciones de WPF. Tenga en cuenta que Visual Studio no es bueno en la carga de estos estilos de Vinculados archivos XAML (diccionario de recursos), pero la expresión mezcla de ofertas con él y le dará el editor de vista previa.

    Entonces ¿cómo puedo utilizar estos recursos en mi controles de usuario, cuando el usuario los controles están en un proyecto independiente/asamblea?
    Lo tengo funcionando! Gracias. Tuve el recurso material de trabajo en mi Aplicación no estaba seguro de cómo obtener estos recursos para trabajar en los controles de usuario. No me di cuenta de que sería sólo funciona cuando el control se ha añadido a la Aplicación. Creo que el hecho de que el diseñador de visual studio no era mostrar que me echaron.
    El uso de Expression Blend, mucho mejor para el diseño visual de aspecto (y los recursos fluyan hacia abajo).
    Así que pensé que tenía que trabajar, y parecía estar bien para un par de días. Pero ahora no puedo ver mis controles de usuario en el diseñador. Me sale el error de que la «StaticResource referencia» nombre del recurso «no fue encontrado». Además de que ahora no se puede ver cualquier ventana que tiene uno de los controles de usuario.
    Mi situación es la misma que dan. Durante varios días he tenido ningún problema con tener staticresource referencias a la fusión de las resourcedictionary en la aplicación.xaml, pero ahora staticresource referencias no trabajo en el diseñador. No tengo idea de cómo solucionar este problema y han pasado varias horas de lectura sobre el tema ahora

    OriginalEl autor

  2. 3

    Puede utilizar un Pack URL para hacer referencia a los diccionarios de recursos a través de asambleas. Por ejemplo, en el Prisma de los proyectos (que tiene varios módulos, cada uno en su propia asamblea), debo guardar mi comunes de los diccionarios de recursos en un ResourceDictionaries carpeta en un proyecto titulado Común. Entonces me combinación de estos diccionarios como sea necesario en la aplicación de los módulos mediante el uso de etiquetas similares a este en cada módulo de la vista XAML:

    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/Common;component/ResourceDictionaries/DemoDictionary.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </UserControl.Resources>

    Usted puede encontrar más información aquí.

    OriginalEl autor David Veeneman

Dejar respuesta

Please enter your comment!
Please enter your name here