2012-11-22 40 views
2

我爲選項卡控件製作了一個模板。它所做的是在mouseover上使用邊界的背景和動畫。通過ExitActions中的動畫恢復到初始狀態

當鼠標離開時,它應該從Background屬性中讀取當前值並相應地設置它們。

<MultiTrigger> 
    <MultiTrigger.Conditions> 
     <Condition Property="IsSelected" Value="false"/> 
     <Condition Property="IsMouseOver" Value="true"/> 
    </MultiTrigger.Conditions> 
    <MultiTrigger.EnterActions> 
     <BeginStoryboard> 
      <Storyboard> 
       <ColorAnimation Storyboard.TargetName="Bd" 
           Storyboard.TargetProperty="Background.GradientStops[0].Color" To="#003372" 
           Duration="0:0:0.2"/> 
       <ColorAnimation Storyboard.TargetName="Bd" 
           Storyboard.TargetProperty="Background.GradientStops[1].Color" To="#025092" 
           Duration="0:0:0.2"/> 
       <ColorAnimation Storyboard.TargetName="Bd" 
           Storyboard.TargetProperty="Background.GradientStops[2].Color" To="#003372" 
           Duration="0:0:0.2"/> 
      </Storyboard> 
     </BeginStoryboard> 
    </MultiTrigger.EnterActions> 
    <MultiTrigger.ExitActions> 
     <BeginStoryboard> 
      <Storyboard> 
       <ColorAnimation Storyboard.TargetName="Bd" 
           Storyboard.TargetProperty="Background.GradientStops[0].Color" To="{TemplateBinding Background.GradientStops[0].Color}" 
           Duration="0:0:0.2"/> 
       <ColorAnimation Storyboard.TargetName="Bd" 
           Storyboard.TargetProperty="Background.GradientStops[1].Color" To="{TemplateBinding Background.GradientStops[1].Color}" 
           Duration="0:0:0.2"/> 
       <ColorAnimation Storyboard.TargetName="Bd" 
           Storyboard.TargetProperty="Background.GradientStops[2].Color" To="{TemplateBinding Background.GradientStops[2].Color}" 
           Duration="0:0:0.2"/> 
      </Storyboard> 
     </BeginStoryboard> 
    </MultiTrigger.ExitActions> 
</MultiTrigger> 

問題是

To="{TemplateBinding Background.GradientStops[0].Color}"部分不能正常工作。我應該在那裏寫什麼?

回答

14

請勿在ExitActions區塊中爲您的動畫使用任何To屬性。目標屬性應該回到原始值。

+0

非常感謝! – Oybek

+0

哇,很好。如果我以前知道這一點,我不需要寫一大堆幫手和轉換器。 – Vlad

相關問題