ここはTabItemのXAMLです。トリガーで1つのグラデーションストップの色を設定できるようにしたい。私はトリガーのセッターでグラデーションを完全に再定義できることを知っていますが、私はバックグラウンドで特定のプロパティにアクセスして、将来アニメーション化することができます。WPF ControlTemplateスタイルGradientStop in Trigger
私はトリガーのセッターのすべてのバリエーションを試してみましたが、長い間グーグルグーグルでしたが、まだコンパイルできません。私もclass.property構文を試しましたが、まだ何もありません。このコードが発生する現在のエラーは、
"タイプ 'Background.GradientStops [0]'が見つかりませんでした。
私はここで何が起こっているのか分かりました。おそらく私が望むものは不可能です。しかし、コントロールテンプレートでコントロールのグラデーションをアニメーション化する方法が必要です。
誰か助けてくれますか? おかげ
<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>
あなたの権利は、それがハッキーです。しかし、あなたが名前を停止することによってそれをアニメートすることができるなら、なぜあなたはコントロールテンプレートでそれを行うことができませんか? – nlaq