Xaml 如何从C++\CX?
我在XAML中定义了一个名为“MyRectangle”的矩形,单击后执行以下代码: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
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(动画)代码>在<代码>情节提要>开始()之前代码>。