【问题标题】:Storyboard.begin() throws an InvalidOperationExceptionStoryboard.begin() 抛出 InvalidOperationException
【发布时间】:2012-12-06 01:58:28
【问题描述】:

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

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

非常感谢任何帮助!

【问题讨论】:

    标签: c# xaml windows-phone


    【解决方案1】:

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

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

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

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 2015-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 2018-07-11
      • 2015-10-03
      相关资源
      最近更新 更多