Voici mon code XAML pour un tabItem. Je veux être en mesure de définir la couleur d'un seul arrêt de gradient dans un déclencheur. Je sais que je peux redéfinir complètement le dégradé dans le setter du trigger, mais je veux accéder à une propriété spécifique en arrière-plan pour pouvoir l'animer dans le futur.WPF ControlTemplate Style GradientStop dans Trigger
J'ai essayé toutes les variations de tout ce qui est dans le setter de la gâchette et je l'ai googlé pendant longtemps - mais je n'arrive toujours pas à la compiler. J'ai aussi essayé la syntaxe class.property, mais toujours rien. L'erreur actuelle ce code soulève est:
"Type" Arrière-plan.GradientStops [0] 'n'a pas été trouvé. " Je suis assez sûr que je sais ce qui se passe ici - et peut-être que ce que je veux est impossible. Mais il doit y avoir un moyen d'animer le dégradé d'un contrôle dans un modèle de contrôle ...
Quelqu'un peut-il m'aider? grâce
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<TextBlock Padding="6 2 6 2" Name="TheHeader">
<TextBlock.Background>
<LinearGradientBrush StartPoint="0, 0" EndPoint="0, 1">
<GradientStop Offset="0" Color="#f4fafd" />
<GradientStop Offset="1" Color="#ceedfa" />
</LinearGradientBrush>
</TextBlock.Background>
<ContentPresenter ContentSource="Header" Margin="0" />
</TextBlock>
<ControlTemplate.Triggers >
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="TheHeader" Property="Background.GradientStops[0].Color" Value="White" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
votre droite, c'est hacky. Mais si vous pouvez l'animer en assignant les noms Stop, pourquoi ne pouvez-vous pas le faire dans un controltemplate? – nlaq