2013-02-04 11 views
6

Sto tentando di aggiungere un riferimento alla libreria di risorse definita in un altro progetto (ad es. Elysium) e utilizzarla nel blend di espressioni.Come Expression Blend aggiunge riferimento al dizionario di risorse esterne definito nel tema di libreria di terze parti

Ecco come unire il dizionario delle risorse nel mio file App.Xaml.

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro.Resources;component/Icons.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/Telerik.Windows.Themes.Metro;component/Themes/System.Windows.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

Ma io non riesco a ottenere qualsiasi della risorsa pennelli definito in tali librerie in Expression Blend 4. Qualche idea?

enter image description here

+0

Hai mai trovato una soluzione a questo? Ho riscontrato esattamente lo stesso problema –

+0

@DeanChalk sì, ho postato la mia soluzione di seguito ma non mi è stato permesso di contrassegnare la mia risposta come soluzione. Si prega di provare e contrassegnare come risposta se lo trovate utile. Grazie. –

risposta

4

trovato la mia risposta sul Forum Expression Blend: "(. Passare alla Dizionario esterna delle risorse, selezionarla e fare clic su OK) Progetto> Link a elemento esistente> ricostruire." http://social.msdn.microsoft.com/Forums/en/blend/thread/21bdc8a1-4a58-49f9-ae4d-c736b8fd673a

+2

Cosa succede se la risorsa esterna si trova in una DLL? Sto usando anche MahApps.Metro nella mia applicazione e mi piacerebbe poter fare riferimento a risorse (principalmente pennelli) dai temi nelle mie viste usando Blend per scoprirle per me. –

+0

L'ho appena fatto e c'è stato un passaggio aggiuntivo necessario.Dopo il collegamento e la ricostruzione, segui le istruzioni di Sorskoot riportate di seguito per collegare la vista o il controllo del tuo secondo progetto ai dizionari che hai appena collegato al progetto. Solo dopo puoi selezionare le risorse condivise come "Risorsa locale" nel menu delle opzioni avanzate dei tuoi oggetti. – arwenvh

1

penso che la proprietà Source è impostata in modo non corretto.

<Window.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary 
        Source="/WpfControlLibrary1;component/BrushesInAssembly.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Window.Resources> 
<Grid x:Name="LayoutRoot" Background="{DynamicResource RedBrush}"/> 

Quello che ho fatto per venire a questo:

Come esempio ho creato un nuovo progetto WPF in Blend e ha aggiunto una libreria di controlli. Ho fatto riferimento all'assembly dal progetto principale.

Ho aggiunto un dizionario risorse con un pennello, RedBrush.

project

Than sono andato a MainWindow.xaml e aperto il pannello Risorse. Lì ho collegato il dizionario.

resource pane

Dopo il collegamento si presenta nella lista delle risorse.

RedBrush

+0

Ho provato quello che hai suggerito su una libreria esterna (libreria di progetto che si trova in uno spazio dei nomi diverso, qualcosa come un controllo utente di terze parti). Non sono riuscito a vedere il file elencato come mostrato nell'esempio. –

+0

Questo mi ha aiutato a risolverlo, grazie! – Marc

0

Spero che tu abbia già trovato una soluzione, ma in caso contrario, utilizzo this link here come riferimento costante.

E 'esegue le seguenti operazioni: mostra come collegare ResourceLibraries in progetti di risorse esterne, come denominare gli stili e organizzare in modo che chiunque in una squadra sa cosa sta succedendo, ecc Così semplice, così grande.

Spero che aiuti qualcuno.

Problemi correlati