1

我不确定这里发生了什么。我正在按照 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

例子。我不确定发生了什么,不幸的是调试器没有吐出更多信息。也许我错过了一步?对不起,我有点含糊不清,但这就是我在这个问题上的所有信息。

任何帮助是极大的赞赏!!

4

1 回答 1

2

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

由于类型不兼容,ColorAnimation 不能用于动画属性 Foreground。

我相信这是因为您试图将 TextBox 的 Foreground 属性更改为 Color 对象,但 Foreground 实际上是一个 Brush 对象,因此会出现 Type Mismatch 错误。相反,您必须更改 Foreground 对象的 Color 属性。

试试这个:

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

于 2012-12-06T06:31:23.493 回答