public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            _videoPlayer           = GetTemplateChild("VideoPlayer") as MediaElement;
            _playButton            = GetTemplateChild("playButton") as Image;
            _pauseButton           = GetTemplateChild("pauseButton") as Image;
            _stopButton            = GetTemplateChild("stopButton") as Image;
            _volumeSlider          = GetTemplateChild("volumeSlider") as Slider;
            _speedRatioSlider      = GetTemplateChild("speedRatioSlider") as Slider;
            _timelineSlider        = GetTemplateChild("timelineSlider") as CustomSlider;
            _bufferingTextBlock    = GetTemplateChild("bufferingTextBlock") as TextBlock;
            _resetSpeedButton      = GetTemplateChild("resetSpeedButton") as Image;
            _gridVideoListControls = GetTemplateChild("gridVideoListControls") as Grid;
            _openSummaryButton     = GetTemplateChild("openSummaryButton") as Image;

            //Init events
            _videoPlayer.BufferingEnded   += new RoutedEventHandler(VideoPlayer_BufferingEnded);
            _videoPlayer.BufferingStarted += new RoutedEventHandler(VideoPlayer_BufferingStarted);

            _videoPlayer.Loaded      += new RoutedEventHandler(VideoPlayer_Loaded);
            _videoPlayer.MediaOpened += new RoutedEventHandler(VideoPlayer_MediaOpened);
            _videoPlayer.MediaEnded  += new RoutedEventHandler(VideoPlayer_MediaEnded);
            _videoPlayer.MediaFailed += new EventHandler <ExceptionRoutedEventArgs>(VideoPlayer_MediaFailed);

            _playButton.MouseLeftButtonDown        += new System.Windows.Input.MouseButtonEventHandler(PlayButton_MouseLeftButtonDown);
            _pauseButton.MouseLeftButtonDown       += new System.Windows.Input.MouseButtonEventHandler(PauseButton_MouseLeftButtonDown);
            _stopButton.MouseLeftButtonDown        += new System.Windows.Input.MouseButtonEventHandler(StopButton_MouseLeftButtonDown);
            _volumeSlider.ValueChanged             += new RoutedPropertyChangedEventHandler <double>(VolumeSlider_ValueChanged);
            _speedRatioSlider.ValueChanged         += new RoutedPropertyChangedEventHandler <double>(SpeedRatioSlider_ValueChanged);
            _timelineSlider.Loaded                 += new RoutedEventHandler(TimelineSlider_Loaded);
            _timelineSlider.ValueChanged           += new RoutedPropertyChangedEventHandler <double>(TimelineSlider_ValueChanged);
            _resetSpeedButton.MouseLeftButtonDown  += new System.Windows.Input.MouseButtonEventHandler(ResetSpeedButton_MouseLeftButtonDown1);
            _openSummaryButton.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(OpenSummaryButton_MouseLeftButtonDown);
        }
        private static void ThumbToolTipPlacementChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {
            CustomSlider slider = sender as CustomSlider;

            if (slider.Thumb != null)
            {
                slider.UpdateToolTip();
            }
        }