Ejemplo n.º 1
0
        private void DisplayRoute(TripMessage tripMessage)
        {
            RouteMap.MapElements.Clear();

            if (tripMessage.Trip.BoundingBoxBottomRight != null && tripMessage.Trip.BoundingBoxTopLeft != null)
            {
                RouteMap.SetView(LocationRectangle.CreateBoundingRectangle(tripMessage.Trip.BoundingBoxBottomRight.GeoCoordinate, tripMessage.Trip.BoundingBoxTopLeft.GeoCoordinate));
            }

            foreach (TripRoute tripRoute in tripMessage.Trip.TripRoutes)
            {
                if (tripRoute.Coordinates.Count() >= 2)
                {
                    MapPolyline route = new MapPolyline();

                    route.StrokeColor     = ThemeColourConverter.GetBrushFromHex(tripRoute.Colour).Color;
                    route.StrokeThickness = 9;

                    MapPolyline routeBlack = new MapPolyline();

                    routeBlack.StrokeColor     = ThemeColourConverter.GetBrushFromHex(ThemeColourConverter.Black).Color;
                    routeBlack.StrokeThickness = 11;

                    foreach (Coordinate coordinate in tripRoute.Coordinates)
                    {
                        route.Path.Add(coordinate.GeoCoordinate);
                        routeBlack.Path.Add(coordinate.GeoCoordinate);
                    }

                    RouteMap.MapElements.Add(routeBlack);
                    RouteMap.MapElements.Add(route);
                }
            }
        }
Ejemplo n.º 2
0
        private static void TextPropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
        {
            var richTextBox  = (UrlRichTextBox)dependencyObject;
            var text         = (string)dependencyPropertyChangedEventArgs.NewValue;
            int textPosition = 0;
            var paragraph    = new Paragraph();

            var urlMatches = Regex.Matches(text, UrlPattern);

            foreach (Match urlMatch in urlMatches)
            {
                int urlOccurrenceIndex = text.IndexOf(urlMatch.Value, textPosition, StringComparison.Ordinal);

                if (urlOccurrenceIndex == 0)
                {
                    var hyperlink = new Hyperlink
                    {
                        NavigateUri = new Uri(urlMatch.Value),
                        TargetName  = "_blank",
                        Foreground  = ThemeColourConverter.GetBrushFromTheme(ThemeColour.DrumbleBlue)
                    };
                    hyperlink.Inlines.Add(urlMatch.Value);
                    paragraph.Inlines.Add(hyperlink);
                    textPosition += urlMatch.Value.Length;
                }
                else
                {
                    paragraph.Inlines.Add(text.Substring(textPosition, urlOccurrenceIndex - textPosition));
                    textPosition += urlOccurrenceIndex - textPosition;
                    var hyperlink = new Hyperlink
                    {
                        NavigateUri = new Uri(urlMatch.Value),
                        TargetName  = "_blank",
                        Foreground  = ThemeColourConverter.GetBrushFromTheme(ThemeColour.DrumbleBlue)
                    };
                    hyperlink.Inlines.Add(urlMatch.Value);
                    paragraph.Inlines.Add(hyperlink);
                    textPosition += urlMatch.Value.Length;
                }
            }

            if (urlMatches.Count == 0)
            {
                paragraph.Inlines.Add(text);
            }
            richTextBox.Blocks.Clear();
            richTextBox.Blocks.Add(paragraph);
        }
Ejemplo n.º 3
0
        private void DisplayRoute(TripMessage tripMessage)
        {
            try
            {
                foreach (MapPolyline line in routes)
                {
                    Map.Children.Remove(line);
                }
            }
            catch (Exception) { }

            if (tripMessage.Trip.BoundingBoxBottomRight != null && tripMessage.Trip.BoundingBoxTopLeft != null)
            {
                Map.SetView(LocationRect.CreateLocationRect(tripMessage.Trip.BoundingBoxBottomRight.GeoCoordinate, tripMessage.Trip.BoundingBoxTopLeft.GeoCoordinate));
            }
            var trips = tripMessage.Trip.TripRoutes.ToList();

            foreach (TripRoute tripRoute in tripMessage.Trip.TripRoutes)
            {
                if (tripRoute.Coordinates.Count() >= 2)
                {
                    MapPolyline route = new MapPolyline();
                    routes.Add(route);
                    route.Stroke          = ThemeColourConverter.GetBrushFromHex(tripRoute.Colour);
                    route.StrokeThickness = 9;
                    route.Locations       = new LocationCollection();

                    MapPolyline routeBlack = new MapPolyline();
                    routes.Add(routeBlack);
                    routeBlack.Stroke          = ThemeColourConverter.GetBrushFromHex(ThemeColourConverter.Black);
                    routeBlack.StrokeThickness = 11;
                    routeBlack.Locations       = new LocationCollection();

                    foreach (Coordinate coordinate in tripRoute.Coordinates)
                    {
                        route.Locations.Add(coordinate.GeoCoordinate);
                        routeBlack.Locations.Add(coordinate.GeoCoordinate);
                    }

                    Map.Children.Insert(0, route);
                    Map.Children.Insert(0, routeBlack);
                }
            }
        }