Considera un file | Nuovo progetto di un'applicazione WPF che contiene:Perché sono necessari uri assoluti per i dizionari uniti in Generic.xaml?
- Un nuovo controllo personalizzato denominato CustomControl1
- Due nuovi dizionari risorsa chiamata Dictionary1 e Dictionary2
Prendere lo stile generato fuori generic.xaml e spostarlo al dizionario2. Quindi unire Dictionary2 in Dictionary1 e Dictionary1 in generico come questo:
<!--Generic.xaml-->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Themes/Dictionary1.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!--Dictionary1.xaml-->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary2.xaml"/>
</ResourceDictionary.MergedDictionaries>
Quindi, aggiungere un'istanza di CustomControl1 nella rete di MainWindow. (Questa parte è necessaria per riprodurre il problema.Il progetto compila sempre bene - solo in fase di esecuzione viene visualizzato il problema, e i dizionari devono essere referenziati.)
In Dictionary1.xaml sto unendo in un altro dt nello stesso cartella, quindi una semplice sorgente = "Dictionary2.xaml" funziona. Eppure in Generic.xaml devo usare un URI assoluto. Se modifico quanto sopra per essere Source = "Dictionary1.xaml" senza il pacchetto: // roba di applicazione allora ricevo una XamlParseException causata da una IOException "Impossibile trovare la risorsa 'dictionary1.xaml'" quando tenta di costruire la MainWindow.
La mia domanda:Cosa c'è di speciale in generic.xaml per quanto riguarda la risoluzione relativa dell'URI e perché?