如何使块箭头闪烁?

时间:2011-06-06 05:42:34

标签: c# wpf

我有一个阻挡箭头,我想通过填充绿色来使它闪烁。我也希望能够阻止它。我有一个右键菜单来启动它并停止它。

这是我到目前为止所拥有的。但我无法弄清楚如何启动它。我试图访问它但我收到了一个错误:

All objects added to an IDictionary must have a 
Key attribute or some other type of key associated with them. Line 11 Position 10.

这是我的xaml代码:

<ed:BlockArrow x:Name="ArrowLeft" Fill="Green" HorizontalAlignment="Left" Height="29" Margin="142,0,0,-3" Orientation="Left" Stroke="#FF13FF00" VerticalAlignment="Bottom" Width="39" />


<Window.Resources>
    <Storyboard x:Name="Blink" AutoReverse="True" RepeatBehavior="Forever">
        <ColorAnimationUsingKeyFrames BeginTime="00:00:00"
          Storyboard.TargetName="ArrowLeft"
          Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
            <EasingColorKeyFrame KeyTime="00:00:01" Value="Green"/>
        </ColorAnimationUsingKeyFrames>
    </Storyboard>

所以,在右键菜单中启动它我有:

private void MenuItemLeft_Click(object sender, RoutedEventArgs e)
    {


Storyboard blinkAnimation = TryFindResource("Blink") as Storyboard;
        if (blinkAnimation != null)
        {
            blinkAnimation.Begin();
        }

有更好的方法吗?或者我做错了什么?

1 个答案:

答案 0 :(得分:1)

WPF资源是dictrionaries,因此Resource中的所有内容都必须有密钥。您可以通过添加x:Key属性来添加密钥。然后,您可以通过直接索引到资源词典Resources["MyKeyName"]

来找到您的项目

关于你的实施方法,我觉得很好。