2
我有一個邊框,我試圖使它的BorderBrush閃爍「淡入淡出」。但我的問題是,Flasing顏色取決於後面的代碼。所以顏色會改變,但我必須永遠保持淡入淡出狀態,同時改變這個邊框的「From」顏色。coloranimation的綁定顏色值
我試圖在兩個方面: 1:直接結合的顏色,但後來我知道,有一個凍結的事情是需要的顏色應用:
<Border Grid.Column="1" Grid.Row="2" Name="ActiveBorder" VerticalAlignment="Stretch" Height="auto" BorderBrush="SteelBlue" BorderThickness="2">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation AutoReverse="True" RepeatBehavior="Forever" Storyboard.TargetProperty="BorderBrush.Color" Duration="00:00:01" From="{Binding RelativeSource={RelativeSource Self}, Path=FlashBrush}" To="SteelBlue" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
2:啓動和停止從代碼的動畫,同時改變顏色:
<Border Grid.Column="1" Grid.Row="2" Name="ActiveBorder" VerticalAlignment="Stretch" Height="auto" BorderBrush="SteelBlue" BorderThickness="2" >
<Border.Resources>
<Storyboard x:Key="tt" x:Name="tt">
<ColorAnimation AutoReverse="True" RepeatBehavior="Forever" Storyboard.TargetProperty="BorderBrush.Color" Duration="00:00:01"
From="{Binding RelativeSource={RelativeSource Self}, Path=FlashBrush}" To="SteelBlue" />
</Storyboard>
</Border.Resources>
</Border>
的代碼:
Storyboard storyBoard = ActiveBorder.Resources["tt"] as Storyboard;
storyBoard.Stop();
switch (value)
{
case ElementStatus.Active:
FlashBrush = Brushes.LawnGreen;
break;
case ElementStatus.Hold:
FlashBrush = Brushes.Blue;
break;
default:
FlashBrush = Brushes.SteelBlue;
break;
}
storyBoard.Begin(ActiveBorder);
有什麼想法?謝謝。
你能請註明你所描述的方法的類方面?我的意思是「這個」的價值。也不使用函數的參數「SolidColorBrushFlashBrush」。 – agarwaen