1
這是我的一個TabItem的XAML。我希望能夠在觸發器中設置單個漸變停止的顏色。我知道我可以在觸發器的setter中完全重新定義漸變,但我想訪問背景上的特定屬性,以便將來可以對它進行動畫處理。WPF ControlTemplate樣式GradientStop in Trigger
我已經嘗試了觸發器的setter中的所有變化,並且搜索了很長時間 - 但我仍然無法編譯它。我也嘗試了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>
你的權利,那就是hacky。但是,如果您可以通過分配停止名稱來爲其設置動畫,爲什麼不能在控制模板中執行此操作? – nlaq 2009-06-05 06:42:14