Search Results for

    Show / Hide Table of Contents

    Problem definition

    • MediaPlayer.Position is int value, but Progressbar.Progress is double value (0 to 1.0)
    • Need duration to convert

    Create a custom Converter

    Implements Xamarin.Forms.IValueConverter

    public class PositionToProgressConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return ((int)value / (double)(GetParameter(parameter)));
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return (int)((double)value * GetParameter(parameter));
        }
        int GetParameter(object parameter)
        {
            var duration = ((Tizen.TV.UIControls.Forms.MediaPlayer)parameter).Duration;
            if (duration == 0)
                duration = 1;
            return duration;
        }
    }
    

    Pass a MediaPlayer instance as the parameter

    Use custom converter in Xaml

    ....
    
        <ContentPage.Resources>
            <ResourceDictionary>
                <local:PositionToProgressConverter x:Key="positionToProgress"/>
            </ResourceDictionary>
        </ContentPage.Resources>
    ...
    
        <ProgressBar Progress="{Binding Source={x:Reference Player}, Path=Position, Converter={StaticResource positionToProgress}, ConverterParameter={x:Reference Player}}}"/>
    
    ....
    
    In This Article
    Back to top Copyright © 2018-2019 Samsung
    Generated by DocFX