WPF change la couleur de Fond d'une zone de liste déroulante
Dans mon application WPF, je veux juste changer la couleur d'arrière-plan de la zone de liste modifiable. Je ne parle pas de la liste déroulante, je veux, c'est juste ce que l'élément est sélectionné, un arrière-plan est défini.
Des paramètres tels que la toile de fond d'un bouton - lorsque le contrôle est affiché sur l'écran il doit avoir LightYellow arrière-plan. C'est tout.
J'ai beaucoup cherché sur le net, mais partout, on a pu trouver des solutions pour déroulante des couleurs d'arrière-plan. J'ai essayé d'appliquer SolidColorBrush et de Style.Déclenche le TextBlock de la zone de liste déroulante, mais sans succès, comme le voulait. En ajoutant SolidColorBrush lignes, j'ai obtenu mon déroulant en fond de décor, mais ce n'est pas ce que je recherche. Mon code est :
<ComboBox ItemsSource="{Binding MtrCm}" SelectedValue="{Binding WellboreDiameter_Unit, Mode=TwoWay}" Grid.Row="1" Height="23" HorizontalAlignment="Right" Margin="0,26,249,0" x:Name="cboWellDiameter" VerticalAlignment="Top" Width="120" Background="LightYellow" >
<ComboBox.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.WindowBrushKey}" Color="Yellow" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Yellow" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Yellow" />
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=ComboBoxItem}}" Value="True">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Resources>
</ComboBox>
Quelqu'un peut m'aider qu'il arrière-plan du composant souhaité que suis à la recherche d'.
Grâce
OriginalL'auteur Tvd | 2014-03-27
Vous devez vous connecter pour publier un commentaire.
Essayer cette
Ici est le style que vous pouvez modifier : http://msdn.microsoft.com/en-us/library/ms752094%28v=VS.85%29.aspx
L'élément sélectionné n'apparaît pas sur le dessus. Essayé beaucoup de variations pour définir la forecolor mais aucun effet. Pourquoi l'élément sélectionné n'est pas visible sur le dessus ? Je veux dire, même après la sélection de la zone de liste déroulante qui s'affiche vide - à la place, les éléments sélectionnés doivent apparaître sur le dessus. Ce le même ?
Super réponse, fonctionne à merveille
L'élément sélectionné n'apparaît pas, car la ContentPresenter manque certains attributs:
Content="{TemplateBinding ComboBox.SelectionBoxItem}" ContentTemplate="{TemplateBinding ComboBox.SelectionBoxItemTemplate}" ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
C'est tellement décevant sur WPF... autant de code juste pour définir l'arrière-plan d'une zone de liste déroulante.
OriginalL'auteur NullReferenceException
Alors que j'aime la accepté de répondre au problème que j'ai avec elle, c'est la zone de texte presenter a été complètement raté, et ainsi, vous pouvez sélectionner et appliquer des choses, mais ils ne seront jamais présenté à l'utilisateur final. Je pense que la façon la plus simple pour atteindre une zone de liste déroulante qui affiche des données et puis, quand choisi l'affiche serait celui-ci:
Les éléments-clés de la présentation qui doit être fait est le modèle " ToggleButton.Modèle " pour l'affichage initial. J'ai choisi d'ignorer faire plus de pinceaux et des liens vers plus de modèles et juste de le faire en ligne afin que d'autres puissent jouer avec. J'ai aussi choisi ce que je pensais étaient facilement Identifiables, les couleurs à juste sauter de renvoi, il devrait ressembler à ci-dessous, quand il travaille:
OriginalL'auteur djangojazz
Si vous utilisez visual studio 2012 ou VS 2013 dans la fenêtre structure du Document lors de l'affichage de votre xaml obtenir le modèle de contrôle d'une zone de liste déroulante.
Trouver le style
x:Key="ComboBoxReadonlyToggleButton"
et mise à jour de laRenderMouseOver = "False"
etRenderPressed="False"
sur les Thèmes:ButtonChrome et aussi commenter l'événement qui l'affecte IsEnabled.Ci-dessous sur ce que j'ai édité sur ma boîte pour illustrer ce que je veux dire.
OriginalL'auteur TYY
Essayer cette
OriginalL'auteur Heena Patil
Il suffit d'ajouter les lignes suivantes à votre
ComboBox
style 🙂Exemple:
Croyez-moi, c'est probablement la voie la plus courte pour le faire... je ne vois pas pourquoi nous avons complètement re-définir la
ComboBox
modèle.Je reçois ce Message d'erreur: La ressource "{x:Type de zone de liste déroulante}" ne peut pas être résolu.
OriginalL'auteur Vijay Chavda