using System; using ESlider = ElmSharp.Slider; using ESize = ElmSharp.Size; namespace Xamarin.Forms.Platform.Tizen { public class SliderRenderer : ViewRenderer { public SliderRenderer() { RegisterPropertyHandler(Slider.ValueProperty, UpdateValue); RegisterPropertyHandler(Slider.MinimumProperty, UpdateMinimum); RegisterPropertyHandler(Slider.MaximumProperty, UpdateMaximum); } protected override void OnElementChanged(ElementChangedEventArgs e) { if (Control == null) { SetNativeControl(new ESlider(Forms.Context.MainWindow) { PropagateEvents = false, }); Control.ValueChanged += OnValueChanged; } base.OnElementChanged(e); } protected override void Dispose(bool disposing) { if (disposing) { if (Control != null) { Control.ValueChanged -= OnValueChanged; } } base.Dispose(disposing); } protected override ESize Measure(int availableWidth, int availableHeight) { return new ESize(Math.Min(200, availableWidth), 50); } void OnValueChanged(object sender, EventArgs e) { Element.Value = Control.Value; } protected void UpdateValue() { Control.Value = Element.Value; } protected void UpdateMinimum() { Control.Minimum = Element.Minimum; } protected void UpdateMaximum() { Control.Maximum = Element.Maximum; } } }