private void DetachThumbEventHandlers(Slider slider) { var thumb = slider.GetTemplateChild(HorizontalThumbName) as Thumb; if (thumb != null) { thumb.DragStarted -= ThumbOnDragStarted; thumb.DragStarted += ThumbOnDragStarted; thumb.DragCompleted -= ThumbOnDragCompleted; thumb.DragCompleted += ThumbOnDragCompleted; } }
private IDisposable AttachThumbEventHandlers(Slider slider) { var thumb = slider.GetTemplateChild(HorizontalThumbName) as Thumb; if (thumb != null) { thumb.DragStarted += ThumbOnDragStarted; thumb.DragCompleted += ThumbOnDragCompleted; return(Disposable.Create(() => { thumb.DragStarted -= ThumbOnDragStarted; thumb.DragCompleted -= ThumbOnDragCompleted; })); } return(Disposable.Empty); }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); UnbindMediaPlayer(); var trueToVisible = new FromNullableBoolToVisibilityConverter(); _playPauseButton = this.GetTemplateChild(PlayPauseButtonName) as Button; _playPauseButtonOnLeft = this.GetTemplateChild(PlayPauseButtonOnLeftName) as Button; _volumeMuteButton = this.GetTemplateChild(VolumeMuteButtonName) as Button; _volumeMuteButton?.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsVolumeButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _volumeMuteButton?.SetBinding(Button.IsEnabledProperty, new Binding { Path = "IsVolumeEnabled", Source = this, Mode = BindingMode.OneWay, FallbackValue = true }); _audioMuteButton = this.GetTemplateChild(AudioMuteButtonName) as Button; _volumeSlider = this.GetTemplateChild(VolumeSliderName) as Slider; if (_volumeSlider != null) { _volumeSlider.Maximum = 100; _volumeSlider.Value = 100; } _fullWindowButton = this.GetTemplateChild(FullWindowButtonName) as Button; if (_fullWindowButton != null) { _fullWindowButton.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsFullWindowButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _fullWindowButton.SetBinding(Button.IsEnabledProperty, new Binding { Path = "IsFullWindowEnabled", Source = this, Mode = BindingMode.OneWay, FallbackValue = true }); _fullWindowButton.Tapped -= FullWindowButtonTapped; _fullWindowButton.Tapped += FullWindowButtonTapped; } _castButton = this.GetTemplateChild(CastButtonName) as Button; _zoomButton = this.GetTemplateChild(ZoomButtonName) as Button; if (_zoomButton != null) { _zoomButton?.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsZoomButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _zoomButton?.SetBinding(Button.IsEnabledProperty, new Binding { Path = "IsZoomEnabled", Source = this, Mode = BindingMode.OneWay, FallbackValue = true }); _zoomButton.Tapped -= ZoomButtonTapped; _zoomButton.Tapped += ZoomButtonTapped; } _playbackRateButton = this.GetTemplateChild(PlaybackRateButtonName) as Button; _playbackRateButton?.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsPlaybackRateButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _playbackRateButton?.SetBinding(Button.IsEnabledProperty, new Binding { Path = "IsPlaybackRateEnabled", Source = this, Mode = BindingMode.OneWay, FallbackValue = true }); _skipForwardButton = this.GetTemplateChild(SkipForwardButtonName) as Button; _skipForwardButton?.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsSkipForwardButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _skipForwardButton?.SetBinding(Button.IsEnabledProperty, new Binding { Path = "IsSkipForwardEnabled", Source = this, Mode = BindingMode.OneWay, FallbackValue = true }); _nextTrackButton = this.GetTemplateChild(NextTrackButtonName) as Button; _nextTrackButton?.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsNextTrackButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _fastForwardButton = this.GetTemplateChild(FastForwardButtonName) as Button; _fastForwardButton?.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsFastForwardButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _fastForwardButton?.SetBinding(Button.IsEnabledProperty, new Binding { Path = "IsFastForwardEnabled", Source = this, Mode = BindingMode.OneWay, FallbackValue = true }); _rewindButton = this.GetTemplateChild(RewindButtonName) as Button; _rewindButton?.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsFastRewindButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _rewindButton?.SetBinding(Button.IsEnabledProperty, new Binding { Path = "IsFastRewindEnabled", Source = this, Mode = BindingMode.OneWay, FallbackValue = true }); _previousTrackButton = this.GetTemplateChild(PreviousTrackButtonName) as Button; _previousTrackButton?.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsPreviousTrackButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _skipBackwardButton = this.GetTemplateChild(SkipBackwardButtonName) as Button; _skipBackwardButton?.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsSkipBackwardButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _skipBackwardButton?.SetBinding(Button.IsEnabledProperty, new Binding { Path = "IsSkipBackwardEnabled", Source = this, Mode = BindingMode.OneWay, FallbackValue = true }); _stopButton = this.GetTemplateChild(StopButtonName) as Button; _stopButton?.SetBinding(Button.VisibilityProperty, new Binding { Path = "IsStopButtonVisible", Source = this, Mode = BindingMode.OneWay, FallbackValue = Visibility.Collapsed, Converter = trueToVisible }); _stopButton?.SetBinding(Button.IsEnabledProperty, new Binding { Path = "IsStopEnabled", Source = this, Mode = BindingMode.OneWay, FallbackValue = true }); _audioTracksSelectionButton = this.GetTemplateChild(AudioTracksSelectionButtonName) as Button; _ccSelectionButton = this.GetTemplateChild(CCSelectionButtonName) as Button; _timeElapsedElement = this.GetTemplateChild(TimeElapsedElementName) as TextBlock; _timeRemainingElement = this.GetTemplateChild(TimeRemainingElementName) as TextBlock; _progressSlider = this.GetTemplateChild(ProgressSliderName) as Slider; PropertyChangedCallback callback = OnSliderTemplateChanged; _progressSlider?.RegisterDisposablePropertyChangedCallback(Slider.TemplateProperty, callback); _bufferingProgressBar = this.GetTemplateChild(BufferingProgressBarName) as ProgressBar; _timelineContainer = this.GetTemplateChild(TimelineContainerName) as Border; _downloadProgressIndicator = _progressSlider?.GetTemplateChild(DownloadProgressIndicatorName) as ProgressBar; _rootGrid = this.GetTemplateChild(RootGridName) as Grid; if (_rootGrid != null) { _rootGrid.Tapped -= OnRootGridTapped; _rootGrid.Tapped += OnRootGridTapped; } if (_mediaPlayer != null) { BindMediaPlayer(); } }