我有一个阻挡箭头,我想通过填充绿色来使它闪烁。我也希望能够阻止它。我有一个右键菜单来启动它并停止它。
这是我到目前为止所拥有的。但我无法弄清楚如何启动它。我试图访问它但我收到了一个错误:
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();
}
有更好的方法吗?或者我做错了什么?
答案 0 :(得分:1)
WPF资源是dictrionaries,因此Resource
中的所有内容都必须有密钥。您可以通过添加x:Key
属性来添加密钥。然后,您可以通过直接索引到资源词典Resources["MyKeyName"]
关于你的实施方法,我觉得很好。