【问题标题】:DoubleAnimation duration property in metro?地铁中的DoubleAnimation持续时间属性?
【发布时间】:2011-12-23 17:01:37
【问题描述】:

这应该在 WPF 中工作:

DoubleAnimation d = new DoubleAnimation();
d.From = box.Width;
d.To = 1000;
d.Duration = new Duration(TimeSpan.FromSeconds(1)) ; 

但是,在 Metro(Windows 8)中,最后一行给了我错误:

'Windows.UI.Xaml.Duration' 不包含带 1 个参数的构造函数

Intelisense 似乎也认为 Duration 不需要参数。

有什么想法/解决方法吗?我的安装坏了吗?

【问题讨论】:

  • 不,您的安装没有损坏。
  • 你试过只做d.Duration = TimeSpan.FromSeconds(1);
  • @codesparkle 我做了,但它说它无法转换它。

标签: c# wpf windows-8 microsoft-metro


【解决方案1】:

使用

d.Duration = new System.Windows.Duration(TimeSpan.FromSeconds(1));

这与 Windows.UI.Xaml.Duration 不同,并且正如 OP 报告的那样,不起作用。有人有解决方案吗?

编辑:你试过直接设置 TimeSpan 吗?

d.Duration.TimeSpan = TimeSpan.FromSeconds(1);

查看MSDN documentation.

【讨论】:

  • 这感觉像是 api 中的错误,或者至少是不一致的地方。
  • 但是 d.Duration 是一个 Windows.UI.Xaml.Duration 属性 - 它不适用于 Windows ......
  • 我明白了。抱歉,我实际上没有开发人员工具来测试它。如果它不起作用,请将其取消标记为答案。
  • @user939165 我已经编辑了答案,后半部分有用吗?
  • 我得到:无法修改“Windows.UI.Xaml.Media.Animation.Timeline.Duration”的返回值,因为它不是变量......Intelisense 在旁边显示一个蓝色的块状东西而不是粉红色的一个/属性符号,我不确定这意味着什么 -_-"
【解决方案2】:

您需要使用 DurationHelper 上的静态方法 FromTimeSpan 来创建持续时间。

d.Duration = DurationHelper.FromTimeSpan(TimeSpan.FromSeconds(1));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多