WPF bouton Désactivé l'arrière-plan
J'ai essayer de changer le bouton du style quand il est désactivé:
<Style TargetType="Button" x:Key="MyButton2">
<Setter Property="Background" Value="MediumAquamarine" />
<Setter Property="Foreground" Value="MediumBlue" />
<Style.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" Value="Green"/>
<Setter Property="Foreground" Value="DeepPink"/>
</Trigger>
</Style.Triggers>
</Style>
et mon bouton:
<Button Style="{StaticResource MyButton2}" Content="My text" Width="100" Height="30" IsEnabled="False" />
Mais pour quelque raison que Ce style n'est pas appliqué pour le bouton:
Comment puis-je appliquer ce style à mon bouton? Et puis-je le faire sans écraser le bouton du modèle uniquement avec des styles?
S'il vous plaît ajouter le bouton du modèle.
mon bouton est le modèle par défaut. je n'ai pas le remplacer
Eh bien, il semble que vous ne sont jamais réglage
le bouton du xaml est indiqué à la fin de la question. Comme vous pouvez le voir IsEnabled attribut est défini sur false
Quel OS/type de demande, êtes-vous créer? Ce bouton ne ressemble pas à un défaut de WPF bouton.
mon bouton est le modèle par défaut. je n'ai pas le remplacer
Eh bien, il semble que vous ne sont jamais réglage
IsEnabled
à false
en premier lieule bouton du xaml est indiqué à la fin de la question. Comme vous pouvez le voir IsEnabled attribut est défini sur false
Quel OS/type de demande, êtes-vous créer? Ce bouton ne ressemble pas à un défaut de WPF bouton.
OriginalL'auteur Junior222 | 2014-08-20
Vous devez vous connecter pour publier un commentaire.
Je ne le pense pas, parce que les Contrôles de la Windows dispose d'un défaut
Styles
etControlTemplates
et dans chaque version de Windows, ils sont différents. En outre, les styles, c'est juste une de beaucoup de paramètres, généralement le style de ne pas changer/ajouter un comportement de contrôle, qui est responsable de cetteControlTemplate
.Note:
le Style c'est un ensemble d'organismes de réglementation, par exemple: définir l'arrière-plan, la taille, etc. LeControlTemplate
est la forme, dans lequel l'ensemble de ces paramètres apparaissent.Dans cette situation, je vous recommande à tous de changer le ControlTemplate, où il est possible d'avoir le même comportement aka avis, quelle que soit la version du système.
Dans ce cas, essayez cette
Style
:OriginalL'auteur Anatoliy Nikolaev
La chose étrange est qu'il "travaille" quand je le lance, bien que partiellement, et c'est probablement le modèle de la touche en fait. Voici un ensemble de boutons modèle.
Comme vous pouvez le voir il ya beaucoup de choses qui se passent dans le modèle de contrôle du bouton. Dans l'exemple suivant SolidColorBrushes sont utilisés lorsque la liste est désactivé.
Vous pouvez modifier ces (dans le cadre de votre usercontrol, app), ou vous pouvez réécrire le modèle de contrôle comme le Suggère Daniel Ward.
Vous pouvez vider le modèle par défaut de tout contrôle par clic droit dans l'INTERFACE de l'Éditeur, Modifier le Modèle -> Créer une copie... à Travers le mélange, le code ou le démontage 🙂
Espère que cela aide!
Acclamations
Stian
OriginalL'auteur Stígandr
Il semble que la seule façon de le faire est de supprimer le thème chrome à partir du bouton. Noter que cela permettra d'éliminer le vol stationnaire/en cliquant sur les animations, ainsi que le bouton de la pente sur Windows 7, si vous êtes en train de construire pour cela.
Malheureusement, Microsoft a décidé que la désactivation d'un bouton doit donner à la toile de fond une valeur codée en dur à partir d'une propriété privée dans le thème chrome code-behind, ce qui signifie que vous ne pouvez pas le modifier via le code XAML. Ce lien explique le problème:
Le modèle de contrôle de
Button
utiliseButtonChrome
, qui a une propriété privée appeléeButtonOverlay
, qui, lors de laButton
aIsEnabled
ensemble deFalse
, définit laBackground
ànew SolidColorBrush(Color.FromRgb(0xf4, 0xf4, 0xf4))
(ou RVB 244,244,244), qui est le gris que vous voyez. Vous ne pouvez pas changer cela.Ce que vous pouvez faire est de créer un nouveau modèle de contrôle pour le bouton (yay), en remplacement de la
Themes:ButtonChrome
élément avec unBorder
élément, lequel vous êtes en mesure de modifier laBackground
de.Il peut ne pas s'afficher dans la vue de conception, mais il fonctionne lorsque vous l'exécutez.
Ainsi, par exemple, pour le vôtre, il pourrait ressembler à quelque chose comme:
OriginalL'auteur Daniel Ward