Storyboard.begin()抛出InvalidOperationException

时间:2012-12-06 01:58:29

标签: c# xaml windows-phone

我不确定这里发生了什么。我正在关注Microsoft提供的示例。一切都在后端完成,因为我需要决定用户是否应该在文本字段中输入内容,或者文本字段值是否应显示为普通文本。代码如下:

            nameInput.Name = "inputName";
            nameInput.Text = "Journey Name";
            nameInput.KeyUp += onNameInput;

            ColorAnimation animation = new ColorAnimation();
            animation.From = Colors.Blue;
            animation.To = Colors.White;
            animation.Duration = new Duration(TimeSpan.FromMilliseconds(100));
            animation.RepeatBehavior = RepeatBehavior.Forever;
            Storyboard.SetTarget(animation, nameInput);
            Storyboard.SetTargetProperty(animation, new PropertyPath(TextBlock.ForegroundProperty));
            storyBoard.Children.Add(animation);
            journeyStackPanel.Children.Add(nameInput);
            ClockState state = storyBoard.GetCurrentState();
            storyBoard.Begin(); //<---Crashes here

我正在关注

http://msdn.microsoft.com/en-us/library/cc672995(v=vs.95).aspx

例子。我不知道发生了什么,不幸的是调试器不会再吐出任何信息。也许我错过了一步?对不起,我有点模糊,但这是我在这个问题上的所有信息。

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:2)

我能够在最新的WP8 SDK上复制此问题,并生成以下错误消息:

  

ColorAnimation不能用于为Foreground属性设置动画   不兼容的类型。

我相信这是因为您尝试将TextBox的Foreground属性更改为Color对象,但Foreground实际上是Brush对象,因此类型不匹配错误。相反,您必须更改Foreground对象的Color属性。

请改为尝试:

Storyboard.SetTargetProperty(animation, new PropertyPath("(Foreground).(Color)"));