Domanda

Ci stiamo imbarcando in nostro primo progetto Silverlight, provenienti da WPF. Si tratta di un portale web relativamente semplice e vorremmo evitare di riferimenti alla Silverlight Toolkit, data la nostra esperienza con il toolkit WPF.

Io non sono molto di un codificatore e hanno un paio di domande relative ai temi:

  • stili impliciti rendere questo più facile. Sembra che cancellare poteva solo passare fuori dizionari di risorse per cambiare il tema. Come faccio a fare questo senza fare affidamento sul Toolkit?

  • Come faccio ad applicare gli stili per l'intera applicazione, come in WPF, invece di cose avvolgimento nei contenitori a tema? Vedo che c'è un ApplicationThemeURI è possibile utilizzare, ma che richiede il toolkit.

Grazie.

È stato utile?

Soluzione

Solo una nota sul Siverlight Toolkit. L'ultima volta che ho usato la WPF Toolkit (che era qualche tempo fa), ho avuto l'impressione che fosse più o meno opzionale. Non direi che lo stesso vale per il Silverlight Toolkit. Si aggiunge una grande quantità di importanti funzionalità che sarebbe difficile da implementare da soli, e mentre non è privo di bug, è abbastanza affidabile. Non posso garantire per ogni aspetto di esso, ma stiamo usando ampiamente in un grande progetto di Silverlight (~ 30K linee di codice), e lo troviamo indispensabile. A meno che siate consapevoli dei problemi specifici che il progetto avrebbe incontrato, io vi consiglio di ripensare la vostra decisione di non usarlo.

Altri suggerimenti

L'applicazione di stile per tutta l'app è un compito semplice in Silverlight 4. Mettere questo codice in App.xaml o temi / generic.xaml:

<!-- Sample style for each button in the application -->
<Style TargetType="Button">
</Style>

In questo articolo potrebbe aiutare: http://www.silverlightshow.net/items/Implicit-Styles -in-Silverlight-4.aspx

È possibile modificare dizionario risorse in questo modo:

var dict = Application.Current.Resources.MergedDictionaries.FirstOrDefault(rd => rd.Source == new Uri("Dictionary1.xaml", UriKind.Relative));
if (dict != null)
     dict.Source = new Uri("Dictionary2.xaml", UriKind.Relative);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top