开发者

How do I make a Block Arrow blink?

开发者 https://www.devze.com 2023-03-10 20:58 出处:网络
I have a block arrow and i want to make it blink by just filling it with green. I would like to be able to stop it also. I have a right click menu to start it and stop it.

I have a block arrow and i want to make it blink by just filling it with green. I would like to be able to stop it also. I have a right click menu to start it and stop it.

This is what i have so far. But i cant figure out how to start it. I tried to access it but i got an error:

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

Here is my xaml code:

<ed:BlockArrow x:Name="ArrowLeft" Fill="Green" HorizontalAlignment="Left" Height="29" Margin="142,0,0,-3" Orientation="Left" Stroke="#FF13FF00" VerticalAlignment="Bottom" Width="39" /&g开发者_Python百科t;


<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>

So, in the right click menu to start it i have:

private void MenuItemLeft_Click(object sender, RoutedEventArgs e)
    {


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

Is there a better way to do this? or what am i doing wrong?


WPF Resources are dictrionaries, hence everything within a Resource must have a key. You can add a key by adding an x:Key attribute. You can then locate your item by indexing into the Resource dictionary directly, Resources["MyKeyName"]

Regarding your method of implementation, it looks fine to me.

0

精彩评论

暂无评论...
验证码 换一张
取 消