我有一個列表框,我想用滑動顯示當前狀態的顏色Rectangle
。ListBoxItem樣式保留MouseOver和所選樣式
當物品Selected
或MouseOver
的Recangle
應該否則延伸應該收縮。
<ControlTemplate.Resources>
<Storyboard x:Key="MoveOutStoryboard">
<DoubleAnimation To="175"
Storyboard.TargetProperty="Width"
Storyboard.TargetName="AnimatingGrid">
<DoubleAnimation.EasingFunction>
<QuinticEase EasingMode="EaseOut" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
<ColorAnimation Storyboard.TargetName="ContentPresenter"
Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)"
To="White" />
</Storyboard>
<Storyboard x:Key="MoveInStoryboard">
<DoubleAnimation To="16"
Storyboard.TargetProperty="Width"
Storyboard.TargetName="AnimatingGrid">
<DoubleAnimation.EasingFunction>
<QuinticEase EasingMode="EaseOut" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
<ColorAnimation Storyboard.TargetName="ContentPresenter"
Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)"
To="Black" />
</Storyboard>
</ControlTemplate.Resources>
至於有沒有「或」 Multitrigger我想通了以下觸發:
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource MoveOutStoryboard}" />
</Trigger.EnterActions>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource MoveOutStoryboard}" />
</Trigger.EnterActions>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="False" />
<Condition Property="IsSelected" Value="False" />
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource MoveInStoryboard}" />
</MultiTrigger.EnterActions>
</MultiTrigger>
</ControlTemplate.Triggers>
,但不知何故,當我有最後MultiTrigger
集MoveOutStoryboard
永遠不會被調用,但我想不通爲什麼。
感謝您的幫助。
這兩個故事板動畫相同的屬性?嘗試在激活新故事板之前停止活動故事板,以訪問動畫屬性。 – icebat 2014-08-28 07:22:16
共享「MoveOutStoryboard」和「MoveInStoryboard」的一些示例代碼 – pushpraj 2014-08-28 07:24:19
我將故事板添加到了我的問題中。在我的理解中,由最後一個觸發器激活的MoveInStorybard應該覆蓋之前的動畫。 – 2014-08-28 07:54:03