Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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();
            }
        }