Thursday 15 May 2014

c# - WP8, DoubleAnimation - "Cannot resolve TargetName" exception -



c# - WP8, DoubleAnimation - "Cannot resolve TargetName" exception -

i want create marquee effect in wp8 application. accomplish placed stackpanel within scrollviewer , i'm trying utilize doubleanimation on translatetransform.x property.

code:

<phone:phoneapplicationpage.resources> <storyboard x:name="scroll" repeatbehavior="forever" autoreverse="true"> <doubleanimation from="0" to="100" storyboard.targetname="transform" storyboard.targetproperty="x" duration="0:0:5" /> </storyboard> </phone:phoneapplicationpage.resources> <grid x:name="layoutroot"> ... <scrollviewer height="80" verticalscrollbarvisibility="disabled" horizontalscrollbarvisibility="hidden"> <stackpanel orientation="horizontal"> <stackpanel.rendertransform> <translatetransform x:name="transform" /> </stackpanel.rendertransform> <image source="/assets/logo1.png"></image> <image source="/assets/logo2.png"></image> <image source="/assets/logo3.png"></image> <image source="/assets/logo4.png"></image> <image source="/assets/logo5.png"></image> </stackpanel> </scrollviewer> </grid>

unfortunately when calling scroll.begin() code-behind in page loaded event handler i'm getting exception: system.invalidoperationexception: cannot resolve targetname transform.

what i'am doing wrong? animation runs when place stackpanel straight in layoutroot not when it's kid of scrollviewer.

i think exception explanatory. apply storyboard on ui element there no element named "transform" in xaml storyboard going applied.

so property storyboard.targetname should name of ui element has transformed.

in case if have give stackpanel name mystackpanel , set name in place of transform in storyboard code.

<stackpanel orientation="horizontal" name="mystackpanel"> <stackpanel.rendertransform> <translatetransform x:name="transform" /> </stackpanel.rendertransform> ...

you storyboard should changedin way..

<phone:phoneapplicationpage.resources> <storyboard x:name="scroll" repeatbehavior="forever" autoreverse="true"> <doubleanimation from="0" to="100" storyboard.targetname="mystackpanel" storyboard.targetproperty="x" duration="0:0:5" /> </storyboard> </phone:phoneapplicationpage.resources>

important :-it much improve if utilize blend making simple animation , see how animation code generated in page xaml. got of answers :)

c# windows-phone-8 windows-phone storyboard

No comments:

Post a Comment