void _media_MarkerReached(object sender, TimelineMarkerRoutedEventArgs e) { OnMarkerReached(e.Marker); if (string.Compare(e.Marker.Type, "marker", StringComparison.InvariantCultureIgnoreCase) <= 0) { if (_activeMarker != null) { _activeMarker.Animate.Stop(); } Marker marker; _markers.TryGetValue(e.Marker.Time, out marker); if (marker != null) { _activeMarker = marker; marker.Animate.Begin(); } } }
private void PlaceMarkers() { foreach (TimelineMarker timeLineMarker1 in _media.Markers) { if (string.Compare(timeLineMarker1.Type, "marker", StringComparison.InvariantCultureIgnoreCase) >= 0) { //place a marker in relation to timeline Marker marker = new Marker(); marker.TimelineMarker = timeLineMarker1; marker.Text = timeLineMarker1.Text; marker.HorizontalAlignment = HorizontalAlignment.Left; marker.Clicked += new MediaPlayer.MarkerEventHandler(marker_Clicked); //set width based on percentage of text marker.VerticalAlignment = VerticalAlignment.Top; double positionOfArrow = CalculateMarkerPosition(timeLineMarker1, sliderTimeline.ActualWidth); marker.ArrowPosition = positionOfArrow; this.GridCol2.Children.Add(marker); _markers.Add(timeLineMarker1.Time, marker); } } }