Silverlight: VisualState Animation Being Overridden Somehow -


i've got rather complicated custom control boggle mind if showed of code. ;) in general it's panel displaying multiple controls. can think of custom list box. (please don't tell me use listbox, i've been there , doesn't meet needs completely).

so, set animations in visualstatemanager. here's happens:

  • when hover on 1 of child controls, expect mouseover state fire. does.
  • when select 1 of child controls expect selected state fire , does.
  • when select different child control, selected state fires well
  • when go first child control selected, , select it, selected state shown fire (by debug statements in code) mouseover animation displayed.

is there issue animations able overridden somehow or problem between mouseover , selected states i'm not aware of?

here's vsm markup:

<visualstatemanager.visualstategroups>     <visualstategroup x:name="commonstates">                <visualstate x:name="normal">             <storyboard>                 <coloranimationusingkeyframes begintime="0" duration="00:00:00.150000" storyboard.targetname="backdrop" storyboard.targetproperty="(border.background).(solidcolorbrush.color)">                     <splinecolorkeyframe keytime="0" value="darkgray"/>                 </coloranimationusingkeyframes>             </storyboard>         </visualstate>         <visualstate x:name="mouseover">             <storyboard>                 <coloranimationusingkeyframes begintime="0" duration="00:00:00.150000" storyboard.targetname="backdrop" storyboard.targetproperty="(border.background).(solidcolorbrush.color)">                     <splinecolorkeyframe keytime="0" value="yellow"/>                 </coloranimationusingkeyframes>             </storyboard>         </visualstate>     </visualstategroup>     <visualstategroup x:name="selectedstates">         <visualstate x:name="unselected">             <storyboard>                 <coloranimationusingkeyframes begintime="0" duration="1" storyboard.targetname="backdrop" storyboard.targetproperty="(border.background).(solidcolorbrush.color)">                     <splinecolorkeyframe keytime="0" value="purple"/>                 </coloranimationusingkeyframes>             </storyboard>         </visualstate>         <visualstate x:name="selected">             <storyboard>                 <coloranimationusingkeyframes begintime="0" duration="1" storyboard.targetname="backdrop" storyboard.targetproperty="(border.background).(solidcolorbrush.color)">                     <splinecolorkeyframe keytime="0" value="green"/>                 </coloranimationusingkeyframes>             </storyboard>         </visualstate>     </visualstategroup> </visualstatemanager.visualstategroups> 

and here's gotostate() logic:

private void gotostate(bool usetransitions) { testingvariables("inside gotostate");

if (_isselected) {     system.diagnostics.debug.writeline(_thumbnail.shortfilename + " firing selected vsm");     visualstatemanager.gotostate(this, "selected", usetransitions); } else if (_wasselected) {     _wasselected = false;     system.diagnostics.debug.writeline(_thumbnail.shortfilename + " firing unselected");     visualstatemanager.gotostate(this, "unselected", usetransitions); } else if (_ismouseover) {     system.diagnostics.debug.writeline(_thumbnail.shortfilename + " firing mouseover vsm");     visualstatemanager.gotostate(this, "mouseover", usetransitions); } else {     system.diagnostics.debug.writeline(_thumbnail.shortfilename + " firing normal vsm");     visualstatemanager.gotostate(this, "normal", usetransitions); } 

}

so, can see visualstatemanger.gotostate() method fired , call testingvariables() method use write out conditional flags i'm using determine visual state fire.

thanks in advance.

see answer question: custom styled listbox - how can keep style selected item?


Comments

Popular posts from this blog

unicode - Are email addresses allowed to contain non-alphanumeric characters? -

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -