c# - Set mapcontrol's children topmost -


i'm adding stackpanel mapcontrol. below

enter image description here

but of points added before on top of stackpanel. how set stackpanel topmost?

xaml:

<grid x:name="gridmain">         <maps:mapcontrol             x:name="mapcontrol"             zoominteractionmode="gestureandcontrol"             tiltinteractionmode="gestureandcontrol"             rotateinteractionmode="gestureandcontrol">             <!--zoomlevel="{x:bind viewmodel.zoomlevel, mode=oneway}"             center="{x:bind viewmodel.center, mode=oneway}"-->               <maps:mapitemscontrol x:name="mapitems">                 <maps:mapitemscontrol.itemtemplate>                     <datatemplate>                         <grid tapped="magpoint_tapped" maps:mapcontrol.normalizedanchorpoint="{binding normalizedanchorpoint}" maps:mapcontrol.location="{binding location}">                             <ellipse canvas.zindex="0" width="{binding mag5}" height="{binding mag5}" fill="{binding magcolor}"/>                             <!--<textblock text="{binding mag}"/>-->                         </grid>                      </datatemplate>                 </maps:mapitemscontrol.itemtemplate>             </maps:mapitemscontrol>         </maps:mapcontrol>     </grid> 

and add panel code.

stackpanel sp = new stackpanel();             sp.background = new solidcolorbrush(colors.white);             sp.cornerradius = new cornerradius(15);             sp.borderbrush = new solidcolorbrush(colors.lightgray);             sp.borderthickness = new thickness(1);             sp.width = 260;             sp.minheight = 180;             sp.padding = new thickness(10);             canvas.setzindex(sp, 99999);  mapcontrol.children.add(sp);             windows.ui.xaml.controls.maps.mapcontrol.setlocation(sp, new geopoint(new basicgeoposition { longitude = (double)fi.geometry.coordinates[0], latitude = (double)fi.geometry.coordinates[1] }));             windows.ui.xaml.controls.maps.mapcontrol.setnormalizedanchorpoint(sp, new point(0.5, 1)); 

your way of setting zindex wouldn't work because stackpanel , items inside mapitemscontrol in different hosts.

with of live visual tree, can find out how laid out.

enter image description here

in screenshot above, stackpanel's host (i.e. first canvas) placed behind mapoverlaypresenters host (i.e. second canvas mapitemscontrol inserted). in order have stackpanel sit above them, need manually set zindex of first canvas 1.

once understand this, solution becomes simple -

loaded += (s, e) => {     // getchildbyname comes     // https://github.com/justinxinliu/continuity/blob/0cc3d7556c747a060d40bae089b80eb845da84fa/continuity/extensions/utilextensions.cs#l44     var layergrid = mapcontrol.getchildbyname<grid>("layergrid");     var canvas1 = layergrid.children.first();      canvas.setzindex(canvas1, 1); }; 

hope helps!


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -