Esempio n. 1
0
        private void BindingViewModel()
        {
            Binding startBlockBinding = new Binding
            {
                Source             = MediaPlayerViewModel,
                Path               = new PropertyPath("Position"),
                Converter          = new MediaTimeSpanFormatter(FrameRate),
                ConverterParameter = ValueType
            };

            Binding endBlockBinding = new Binding
            {
                Source             = MediaPlayerViewModel,
                Path               = new PropertyPath("Duration"),
                Converter          = new MediaTimeSpanFormatter(FrameRate),
                ConverterParameter = ValueType
            };

            Binding sliderMaxValueBinding = new Binding
            {
                Source             = MediaPlayerViewModel,
                Path               = new PropertyPath("Duration"),
                Converter          = new MediaSliderValueFormatter(FrameRate, MediaPlayerViewModel.StartTimeOffset),
                ConverterParameter = ValueType
            };

            System.Diagnostics.Debug.WriteLine(string.Format("Slider Max Value - {0}", _mediaSlider.Maximum));

            MediaSliderValueFormatter mediaSliderValueFormatter = new MediaSliderValueFormatter(FrameRate, MediaPlayerViewModel.StartTimeOffset);

            mediaSliderValueFormatter.OnConvertBacked += ((formatter, timeSpan) =>
            {
                if (MediaPlayer != null)
                {
                    mediaPlayer.PlaybackSession.Position = timeSpan;
                }
            });
            Binding sliderValueBinding = new Binding
            {
                Source             = MediaPlayerViewModel,
                Path               = new PropertyPath("Position"),
                Converter          = mediaSliderValueFormatter,
                Mode               = BindingMode.TwoWay,
                ConverterParameter = ValueType
            };

            _startPostionBlock.SetBinding(TextBlock.TextProperty, startBlockBinding);
            _endPostionBlock.SetBinding(TextBlock.TextProperty, endBlockBinding);
            _mediaSlider.SetBinding(Slider.MaximumProperty, sliderMaxValueBinding);
            _mediaSlider.SetBinding(Slider.ValueProperty, sliderValueBinding);
        }
Esempio n. 2
0
        private void BindingViewModel()
        {
            if (FrameMediaPlayer == null)
            {
                return;
            }

            Binding startBlockBinding = new Binding
            {
                Source             = MediaPlayerViewModel,
                Path               = new PropertyPath("Position"),
                Converter          = new MediaTimeSpanFormatter(FrameMediaPlayer.FrameRate),
                ConverterParameter = ValueType
            };

            Binding endBlockBinding = new Binding
            {
                Source             = MediaPlayerViewModel,
                Path               = new PropertyPath("Duration"),
                Converter          = new MediaTimeSpanFormatter(FrameMediaPlayer.FrameRate),
                ConverterParameter = ValueType
            };

            Binding sliderMaxValueBinding = new Binding
            {
                Source             = MediaPlayerViewModel,
                Path               = new PropertyPath("Duration"),
                Converter          = new MediaSliderValueFormatter(FrameMediaPlayer.FrameRate),
                ConverterParameter = ValueType
            };

            MediaSliderValueFormatter mediaSliderValueFormatter = new MediaSliderValueFormatter(FrameMediaPlayer.FrameRate);

            mediaSliderValueFormatter.OnConvertBacked += ((formatter, timeSpan) =>
            {
                if (MediaPlayer != null)
                {
                    FrameMediaPlayer.CurrentFrame = timeSpan;
                }
            });
            Binding sliderValueBinding = new Binding
            {
                Source             = MediaPlayerViewModel,
                Path               = new PropertyPath("Position"),
                Converter          = mediaSliderValueFormatter,
                Mode               = BindingMode.TwoWay,
                ConverterParameter = ValueType
            };

            if (_startPostionBlock != null)
            {
                _startPostionBlock.SetBinding(TextBlock.TextProperty, startBlockBinding);
            }
            if (_endPostionBlock != null)
            {
                _endPostionBlock.SetBinding(TextBlock.TextProperty, endBlockBinding);
            }
            if (_mediaSlider != null)
            {
                _mediaSlider.SetBinding(Slider.MaximumProperty, sliderMaxValueBinding);
                _mediaSlider.SetBinding(Slider.ValueProperty, sliderValueBinding);
            }
        }