Wpf style de ressources pour la couleur de premier plan sélectionnée de l'élément de zone de liste

Arrière-plan:
Je me suis créer une zone de liste qui a des boutons radio sur chaque zone de liste élément, donc, essentiellement, il sera un RadioButtonList. Le contrôle est entièrement créé dans le code. De plein droit maintenant, le contrôle affiche et se comporte correctement et prend en charge 2 orientations (Horizontal/Vertical). La zone de liste utilise un ItemTemplate qui est un StackPanel avec un RadioButton et d'un TextBlock.

Jusqu'à présent j'ai été en mesure d'empêcher la couleur de fond de l'élément de changer lorsque l'élément est sélectionné à l'aide d'un style qui définit un fond transparent.

Je voudrais également faire de même pour la couleur de premier plan.

Fondamentalement, le mode de Sélection de la zone de liste est unique, et lorsqu'un élément est sélectionné, je souhaite uniquement être reflétée par le composant RadioButton.

Je suis en utilisant le code suivant pour définir le ItemContainerStyle:

System.Windows.Style style =  
    new System.Windows.Style(typeof(System.Windows.Controls.ListBoxItem));  

System.Windows.Media.SolidColorBrush brush =  
    new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Transparent);  

style.Resources.Add(System.Windows.SystemColors.HighlightBrushKey, brush);

TextBlock de mon modèle est créé à l'aide d'un Système.De Windows.FactoryFrameworkElement comme ceci:

System.Windows.FrameworkElementFactory factoryTextBlock =   
    new System.Windows.FrameworkElementFactory(typeof(System.Windows.Controls.TextBlock));
factoryTextBlock.SetBinding(System.Windows.Controls.TextBlock.TextProperty, new System.Windows.Data.Binding("Description"));  
factoryStackPanel.AppendChild(factoryTextBlock);

La FactoryTextBox est ensuite ajouté à la FactoryStackPanel et est définie comme l'ItemTemplate de la ListBox.

À l'instant, j'ai la couleur d'arrière-plan d'être Transparent lorsque l'élément est sélectionné. Puisque le texte est blanc par défaut, visuellement disparaît lorsque l'élément est sélectionné. Je suis à la recherche d'un moyen de définir une couleur de premier plan du textblock lorsqu'il est sélectionné. Pour l'instant, il peut être noir, mais elle finira par référence à une couleur de police à un niveau supérieur.

OriginalL'auteur BrandonS | 2009-02-12