La version actuelle du contrôle PivotViewer de Microsoft Live Labs pour SilverLight 4 n'a aucun moyen de styler les éléments du contrôle. En regardant le contrôle dans Reflector, je peux voir qu'une grande partie de l'info de style est définie dans un ResourceDictionary dans l'assembly (assets/defaultcolors.xaml). Ce que je voudrais faire est de créer ma propre copie de ce fichier, puis le remplacer à l'exécution sur le contrôle PivotViewer. En sous-classant le contrôle PivotViewer et en remplaçant OnApplyTemplate, je peux saisir les éléments enfants et définir des propriétés telles que l'arrière-plan en fonction de la classeComment remplacer un ResourceDictionary d'un UserControl tiers (dans ce cas PivotViewer)
Je n'ai pas eu de succès Clear() 'ng les MergedDictionaries et en ajoutant mon propre:
public override void OnApplyTemplate() {
base.OnApplyTemplate();
/* can change things this way */
CollectionViewerView cvv = ((CollectionViewerView)((Grid)this.GetTemplateChild("PART_Container")).Children[0]);
((Grid)cvv.Content).Background = new SolidColorBrush(Colors.Black);
/* can't change things this way */
CustomDictionary gd = new CustomDictionary();
cvv.Resources.MergedDictionaries.Clear();
cvv.Resources.MergedDictionaries.Add(gd);
}
Merci - marquant cela comme la réponse. Il est temps de repenser l'approche. L'arborescence visuelle est assez désagréable pour PivotViewer, essayant de la styliser, ce serait de la folie! – ViNull