ThinkGeo.com    |     Documentation    |     Premium Support

Add TextBox to Marker's content

Hi, 



I add some markers  to map dynamically run time .



User should be able to edit texts for each marker . So I’ve added TextBox to marker’s content.



Everything works fine but user cannot edit on textbox to edit texts . 



This is my code :


var markerOverlay = (SimpleMarkerOverlay)Overlays[MarkerOverlayId];
 
var marker = new Marker(LastMouseClickPosition)
                 {
                     ImageSource =
                         new BitmapImage(new Uri(@"…\Resources\Images\Icons\point_16.png",
                                                 UriKind.RelativeOrAbsolute)),
                     YOffset = 0,
                     XOffset = 0
                 };
 
var content = new TextBox
                  {
                      BorderThickness = new Thickness(0),
                      Text = “label”,
                      FontSize = 10,
                      Foreground = new SolidColorBrush(Colors.Black),
                      Margin = new Thickness(0, -25, 0, 0),
                      VerticalAlignment = VerticalAlignment.Top,
                      MaxLength = 50,Focusable=true
                  };
content.Focus();
 
content.TextChanged -= ContentTextChanged;
content.TextChanged += ContentTextChanged;
 
marker.Content = content;
markerOverlay.Markers.Add(marker);
Refresh(Overlays[MarkerOverlayId]);





Any idea what’s the problem ?

Is this something related to styles ?



Thanks








Hi Shaahin,


It looks you saved the overlays in a list and did change for the list but not with wpfMap directly?


I did small change with your sample and it works well, I can change text in the map correct.


1. Add event MapClick: MapClick="wpfMap_MapClick"

2. Create marker overlay when wpfMap_Loaded: 

SimpleMarkerOverlay simpleMarkerOverlay = new SimpleMarkerOverlay();

wpfMap.Overlays.Add(MarkerOverlayId, simpleMarkerOverlay);

3. Your code in MapClick event:

private void wpfMap_MapClick(object sender, MapClickWpfMapEventArgs e)

        {

            var markerOverlay = (SimpleMarkerOverlay)wpfMap.Overlays[MarkerOverlayId];


            var marker = new Marker(e.WorldLocation)

            {

                ImageSource =

                    new BitmapImage(new Uri(@"..\..\Resources\Images\Icons\point_16.png",

                                            UriKind.RelativeOrAbsolute)),

                YOffset = 0,

                XOffset = 0

            };


            var content = new TextBox

            {

                BorderThickness = new Thickness(0),

                Text = "label",

                FontSize = 10,

                Foreground = new SolidColorBrush(Colors.Black),

                Margin = new Thickness(0, -25, 0, 0),

                VerticalAlignment = VerticalAlignment.Top,

                MaxLength = 50,

                Focusable = true

            };

            content.Focus();


            content.TextChanged -= ContentTextChanged;

            content.TextChanged += ContentTextChanged;


            marker.Content = content;

            markerOverlay.Markers.Add(marker);

            //Refresh(Overlays[MarkerOverlayId]);

            wpfMap.Overlays[MarkerOverlayId].Refresh();

        }


here is the screen shot for this.


Any question please let me know.


Regards,


Don



Here is the attachement

Here is the attachement

Hi Summer , 
  
 Thanks for your response .  
  
 My actual problem about marker has been explained here (Last post) => thinkgeo.com/forums/MapSuite/tabid/143/aft/11085/Default.aspx 
 Can you please check and get back to me ? 
  
 Regards 


Hi Shaahin, 
  
 You means your problem totally same with Ben? 
  
 If you make sure that could we reply in the other post? 
  
 And I haven’t reproduced his issue succeed today. 
  
 Regards, 
  
 Don