Xaml 如何从C++\CX?

Xaml 如何从C++\CX?,xaml,c++-cx,win-universal-app,Xaml,C++ Cx,Win Universal App,我在XAML中定义了一个名为“MyRectangle”的矩形,单击后执行以下代码: auto animation = ref new Windows::UI::Xaml::Media::Animation::DoubleAnimation(); animation->From = 0.01; animation->To = 5.50; animation->AutoReverse = true; auto beginTime = Wind

我在XAML中定义了一个名为“MyRectangle”的矩形,单击后执行以下代码:

    auto animation = ref new Windows::UI::Xaml::Media::Animation::DoubleAnimation();
    animation->From = 0.01;
    animation->To = 5.50;
    animation->AutoReverse = true;
    auto beginTime = Windows::Foundation::TimeSpan();
    beginTime.Duration = 0;
    animation->BeginTime = beginTime;
    auto duration = Windows::Foundation::TimeSpan();
    duration.Duration = 20000*1000;
    animation->Duration = duration;
    auto storyboard = ref new Windows::UI::Xaml::Media::Animation::Storyboard();
    auto scaleTransform = ref new Windows::UI::Xaml::Media::ScaleTransform();
    MyRectangle->RenderTransform = scaleTransform;
    storyboard->SetTargetProperty(animation, "(Rectangle.RenderTransform).(ScaleTransform.ScaleX)");
    storyboard->SetTarget(animation, MyRectangle);
    storyboard->SetTargetName(animation, "MyRectangle");
    storyboard->SpeedRatio = 1.0;
    storyboard->Begin();
然而,什么也没有发生。我做错了什么?

您必须将“动画”(或更多动画)添加到“故事板”儿童:

情节提要->子对象->附加(动画)

这就是C#等价物:


是以100纳秒单位表示的时间段。因此,动画将运行2毫秒。最好设置
animation->Duration=TimeSpan::FromSeconds(20)
左右。我将它增加了1000倍,但仍然没有发生任何事情。看起来你没有将动画添加到情节提要中。尝试调用
storyboard->Children->Append(动画)在<代码>情节提要>开始()之前