private void OnNavigationalData(NavigationalData navigationalData) { // if (this.InvokeRequired) // { // this.BeginInvoke(new Action<NavigationalData>(OnNavigationalData), new object[] { navigationalData }); // } // else { if ((null != navigationalData) && (true == navigationalData.Latitude.HasValue) && (true == navigationalData.Longitude.HasValue)) { var position = new PointLatLng(navigationalData.Latitude.Value, navigationalData.Longitude.Value); _mapMarker.Position = position; _mapMarker.ToolTipMode = ToolTipAppearanceHelper.GetMarkerTooltipMode(_config.ToolTip.Appearance); if (_mapMarker.ToolTipMode != MarkerTooltipMode.Never) { _mapMarker.ToolTipText = BuildToolTipText(navigationalData); } _mapMarker.IsVisible = true; } else { _mapMarker.IsVisible = false; } } }
private string BuildToolTipText(NavigationalData navigationalData) { var bd = new StringBuilder(); if (ToolTipTextHelper.HasValue(_config.ToolTip.TextType, ToolTipTextTypes.Name)) { bd.Append(_marker.DeviceName); } if (ToolTipTextHelper.HasValue(_config.ToolTip.TextType, ToolTipTextTypes.NameAndLocation)) { bd.AppendLine(); } if (ToolTipTextHelper.HasValue(_config.ToolTip.TextType, ToolTipTextTypes.Location)) { if (navigationalData.Latitude != null) { bd.Append("Latitude: ").AppendLine(navigationalData.Latitude.Value.ToString(CultureInfo.InvariantCulture)); } if (navigationalData.Longitude != null) { bd.Append("Longitude: ").Append(navigationalData.Longitude.Value.ToString(CultureInfo.InvariantCulture)); } } return(bd.ToString()); }