c# - ExtendedVisualStateManager.GoToElementState returns false in Silverlight -


i have custom control animation want control. attempt update using visualstatemanager.gotostate returns false in silverlight , animation never starts. works in wpf though same xaml.

the silverlight code

//to start retval = extendedvisualstatemanager.gotoelementstate(this.canvasparent, "workingstate", true); 

the wpf code

retval = visualstatemanager.gotoelementstate(this.canvasparent, "workingstate", true); 

xaml (common):

<style targettype="local:waitspinner">     <setter property="template">         <setter.value>             <controltemplate targettype="local:waitspinner">                 <viewbox visibility="{templatebinding visibility}">                     <canvas rendertransformorigin="0.5,0.5" x:name="canvasparent" width="120" height="120">                         <!-- other awesomeness -->                          <visualstatemanager.visualstategroups>                             <visualstategroup x:name="working">                                 <visualstate x:name="workingstate">                                     <storyboard>                                         <doubleanimation                                         storyboard.targetname="spinnerrotate"                                         storyboard.targetproperty="angle"                                         from="0" to="360" duration="0:0:01.3"                                         repeatbehavior="forever" />                                     </storyboard>                                 </visualstate>                                 <visualstate x:name="stop"/>                             </visualstategroup>                         </visualstatemanager.visualstategroups>                     </canvas>                 </viewbox>             </controltemplate>         </setter.value>     </setter> </style> 

put <visualstatemanager.visualstategroups> on first controltemplate child :

<style targettype="local:waitspinner">     <setter property="template">         <setter.value>             <controltemplate targettype="local:waitspinner">                 <viewbox visibility="{templatebinding visibility}">                     <visualstatemanager.visualstategroups>                         <visualstategroup x:name="working">                             <visualstate x:name="workingstate">                                 <storyboard>                                     <doubleanimation                                     storyboard.targetname="spinnerrotate"                                     storyboard.targetproperty="angle"                                     from="0" to="360" duration="0:0:01.3"                                     repeatbehavior="forever" />                                 </storyboard>                             </visualstate>                             <visualstate x:name="stop"/>                         </visualstategroup>                     </visualstatemanager.visualstategroups>                     <!-- ................. --> 

edit : (i full response comment) use visualstatemanager gotostate method this :

visualstatemanager.gotostate(this, "workingstate", true); 

Comments