2010-04-23 4 views
1

J'essaie d'utiliser le thème dans mon application, mais j'ai un problème avec mon style ne pas être appliqué correctement. Je cours les lignes de code suivantes:Styles Ne pas mettre à jour

 App.Current.Resources.MergedDictionaries.Clear();      
     ResourceDictionary rd = new ResourceDictionary(); 
     rd.Source = new Uri("/Style2.xaml", UriKind.RelativeOrAbsolute); 
     App.Current.Resources.MergedDictionaries.Add(rd); 

Dois-je actualiser la page? Si oui, comment puis-je faire cela dans Silverlight?

Merci! Blake

Répondre

1

Oui, vous devez "Actualiser la page" les ressources statiques sont comme son nom l'indique statique. L'analyseur Xaml les résout à la volée.

Vous devrez créer une nouvelle instance de ce que vous avez actuellement attribué au App.RootVisual et la réaffecter. Voici un code général qui pourrait faire l'affaire: -

App.RootVisual = (UIElement)Activator.CreateInstance(App.RootVisual.GetType()); 
+0

Savez-vous comment cela fonctionnerait avec Prism? Je suis nouveau à Prism, mais il semble que cela pourrait interférer avec le Boostrapper. –

+0

@Blake: Désolé non je n'ai pas, heureusement, évité Prism pour l'instant. Cependant, si c'est similaire aux autres solutions MVVM, ma réponse sera un problème. Pouvez-vous ne pas inclure dans le processus d'invocation de ce thème un certain sens de la navigation, provoquant ainsi le chargement d'une nouvelle page de toute façon? – AnthonyWJones

+0

Oui, c'est une bonne idée. Je veux gérer le style de l'utilisateur à la connexion afin que je puisse naviguer et charger une autre page à ce moment-là. En outre, je suis commencé à regarder "Implicit Styling" et il semble que cela peut aider. –

Questions connexes