我有這樣的代碼:問題的條件觸發(或動畫)
<UserControl.Resources>
<Storyboard x:Key="OnMouseEnterToDocumentsMenu">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Documents">
<EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="0.8"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="OnMouseLeaveFromDocumentsMenu">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Documents">
<EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0.3"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="OnMouseEnterToPeopleMenu">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="People">
<EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="0.8"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="OnMouseLeaveFromPeopleMenu">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="People">
<EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0.3"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Storyboard>
</UserControl.Resources>
<UserControl.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter" SourceName="Documents">
<BeginStoryboard Storyboard="{StaticResource OnMouseEnterToDocumentsMenu}"/>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseLeave" SourceName="Documents">
<BeginStoryboard Storyboard="{StaticResource OnMouseLeaveFromDocumentsMenu}"/>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseEnter" SourceName="People">
<BeginStoryboard Storyboard="{StaticResource OnMouseEnterToPeopleMenu}"/>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseLeave" SourceName="People">
<BeginStoryboard Storyboard="{StaticResource OnMouseLeaveFromPeopleMenu}"/>
</EventTrigger>
</EventTrigger>
</UserControl.Triggers>
目的
我是動畫的菜單。菜單元素是TextBlocks,我正在模擬「懸停衰落」。
問題
我發佈的代碼動畫一旦鼠標進入或離開的不透明度。我有另一種方法(後面的代碼),一旦用戶在菜單上點擊它(並在相應的容器上加載適當的用戶控件),就將菜單元素的不透明度設置爲「1」。我猜這種方法是有效的,但是一旦MouseLeave動畫開始,無論該元素是否被選中(如果其不透明度是1而不是0.8),它都會再次消失不透明度。
需要
是否有指定只有鼠標離開觸發器觸發時,源透明度不爲1或僅如果TargetProperty不是1
感謝執行故事板的方式。
PS
有沒有一種方法,以防止因爲動畫故事板是相同(重點和褪色)的和更多的菜單會重複代碼。我複製它,因爲我需要把目標名稱,是不同的,但我想有另一種「更清潔」的方式。
嘗試'表達Blend'。它可以幫助你創建儘可能簡單的動畫。 – Rev
我正在使用表情混合。這就是我創建上述動畫的方式。但它沒有提供我所要求的指導。 –
'Anivas'提供很好的答案。對於動畫問題,您必須處理'UserControl CodeBehind'並檢查不透明度的當前狀態。 – Rev