internal void EvaluateMarkers() { var now = base.Position; if (lastMarkerCheckTime.HasValue) { foreach (var marker in markers.ToList()) { if (marker.Time <= now && marker.Time > lastMarkerCheckTime.Value) { if (MarkerReached != null) { MarkerReached(this, new TimelineMarkerRoutedEventArgs() { Marker = marker }); } } } } lastMarkerCheckTime = now; }
void markerTimer_Tick(object sender, EventArgs e) { if (markerTimer.IsEnabled) { var now = mediaElement.Position; if (lastMarkerCheckTime.HasValue) { foreach (var marker in markers.ToList()) { if (marker.Time <= now && marker.Time > lastMarkerCheckTime.Value) { if (MarkerReached != null) { MarkerReached(this, new TimelineMarkerRoutedEventArgs() { Marker = marker }); } } } } lastMarkerCheckTime = now; } }