2010-09-02 15 views
3

J'ai essayé pendant un certain temps pour obtenir thématisation travailler dans Silverlight 4.thème avec Silverlight 4

J'ai ajouté une référence à System.Windows.Controls.Theming.Toolkit et System.Windows .controls.Theming.ShinyRed

Puis je suis allé et a fait quelque chose comme ceci:

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input" xmlns:WebbyDraw="clr-namespace:WebbyDraw" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  x:Class="SilverlightApplication1.MainPage" 
    Width="960" Height="700" mc:Ignorable="d" 
    xmlns:shinyRed="clr-namespace:System.Windows.Controls.Theming;assembly=System.Windows.Controls.Theming.ShinyRed" > 
<shinyRed:ShinyRedTheme> 
<Grid x:Name="LayoutRoot2"> 
.... 
</Grid> 
</shinyRed:ShinyRedTheme> 
</UserControl> 

mais je reçois toujours le même vieux thème ... aucune erreur, mais rien ne se passe non plus. J'ai aussi essayé d'autres thèmes de la boîte à outils Silverlight 4, et j'ai aussi essayé de l'appliquer à un seul contrôle ... rien ... qu'est-ce que je fais de mal? J'ai lu plusieurs tutoriels et n'ai pas trouvé la réponse.

+0

Avez-vous essayé d'ajouter un dictionnaire de ressources dans app.xaml? –

+0

J'ai essayé de mettre la définition de l'espace de noms (xmlns: shinyRed = ") dans l'app.xaml ... mais est-ce que tout ce que j'ai besoin de faire? Cela ne semble pas fonctionner. –

Répondre

0

Voici comment j'utilise thématisation, je également permettre à mes utilisateurs de changer leur thème préféré -
vous pouvez remplacer ShinyRed.xaml avec tout autre fichier de ressources de style pour soutenir plusieurs thèmes peuvent également être effectuée par programme (supprimer une ressource dictionnaire et en ajouter un autre).

Dans votre contrôle utilisateur Xmal

xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit" 
<toolkit:Theme x:Name="ThemeContainer"> 
<Grid x:Name="LayoutRoot"> 
... all other controls in the page 
</Grid> 

Copier toutes les brosses et les polices nécessaires pour le thème shinyred et créer un seul fichier de style appelé ShinyRed.xaml (vous pouvez simplement suivre les inclut dans chaque fichier pour obtenir tout ce qu'il dans un fichier)

Donc dans votre référence App.xaml, cette nouvelle version de xaml adn est compilée et exécutée!

<Application.Resources> 
     <ResourceDictionary> 

      <ResourceDictionary.MergedDictionaries>     
       <ResourceDictionary Source="Assets/ShinyRed.xaml"/> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources>