ThinkGeo.com    |     Documentation    |     Premium Support

Marker Visibility property with Imagesource

I am creating several markers and want to hide all but the last one.  Each marker as a different imagesource.  This is what I am trying:



        Dim markerOverlay As SimpleMarkerOverlay = DirectCast(WpfMap1.Overlays("MarkerOverlay"), SimpleMarkerOverlay)

        For i As Integer = 0 To markerOverlay.Markers.Count - 2
            markerOverlay.Markers(i).Visibility = False
        Next


 But it does not work... it's as if the visibility property has no affect on the imagesource.



If the marker is actually a WPF usercontrol then setting the visibility property to false won’t work.  You need to use Visibility.Visible, Visibility.Collapsed, or Visibility.Hidden.  Collapsed will free up UI resources.

Micheal, 
  
 Thanks for your questions! 
  
 I found out where is your problem, the Visibility property is not a bool type, it is a System.Windows.Visibility type, I’m not sure why you can compile successfully with the code above but I’m sure it is incorrect. Please use the following code to instead of the “False” value in the code above: 
  
 System.Windows.Visibility.Hidden 
  
 I just tested it and worked fine, also thanks for Thomas, 
  
 Thanks, 
  
 Scott,

 It compiles because Visibility is an [Enum] and Boolean.True or Boolean.False will resolve to an enumeration logically.



Scott and Thomas… thank you… that did it.  Not sure why the compiler did not complain or get a warning in the IDE.

Michael, 
  
 In VB, after compiling, false is traded as 0 and (Visibility)0 is actually Visible in the enum. Plus, it cannot be compiled in C#. 
  
 Hope it helps and feel free to let us know if you have any questions. 
  
 Thanks, 
 Howard

Micheal, 



Any more questions please let us know again, 



Thanks, 



Scott,