i have button created dynamically via code behind. reason because want entrancethemetransition
repeat each time button visible.
<grid x:name="gridroot"> <grid x:name="gridnextkitty" visibility="{binding isnextkittybuttonvisible, converter={staticresource booleantovisibilityconverter}}"> <grid.childrentransitions> <transitioncollection> <entrancethemetransition fromhorizontaloffset="1000" fromverticaloffset="0" isstaggeringenabled="false"/> </transitioncollection> </grid.childrentransitions> <!--<button x:name="btnnextkitty" content="next kitty" fontsize="40" command="{binding btnnextkittyclick}" style="{staticresource buttonmenustyle}" background="#74b025" width="300" height="80" margin="24" horizontalalignment="center" verticalalignment="center"/>--> </grid> </grid>
the button added this
if (viewmodel.isnextkittybuttonvisible) { btnnextkitty = new button() { content = "next kitty", fontsize = 40, command = viewmodel.btnnextkittyclick, style = (style)application.current.resources["buttonmenustyle"], background = new solidcolorbrush(color.fromargb(255, 116, 176, 37)), width = 300, height = 80, margin = new thickness(24), horizontalalignment = horizontalalignment.center, verticalalignment = verticalalignment.center }; gridnextkitty.children.add(btnnextkitty); addvisualstatemanager(); } else { gridnextkitty.children.remove(btnnextkitty); visualstatemanager.getvisualstategroups(gridroot).remove(vsg); }
i added thevisualstatemanager
via code behind statetriggers
true though minwindowwidth
< 500.
private void addvisualstatemanager() { vsg = new visualstategroup(); visualstate vs = new visualstate(); vs.statetriggers.add(new adaptivetrigger { minwindowwidth = 500, }); vs.setters.add(new setter { target = new targetpropertypath { path = new propertypath("(frameworkelement.width)"), target = btnnextkitty }, value = "240" }); vsg.states.add(vs); visualstatemanager.getvisualstategroups(gridroot).add(vsg); }
how make trigger work via code behind?
you should add default state width 0 500. example, empty visual state.
vsg.states.add(vs); vs = new visualstate(); vs.statetriggers.add(new adaptivetrigger { minwindowwidth = 0, }); vsg.states.add(vs);
Comments
Post a Comment