如何在Xamarin窗体滑块控件中显示刻度线

时间:2018-06-01 11:39:21

标签: c# xamarin.forms

我在便携式项目中使用Xamarin表单Slider控件。这正确显示最小值,最大值。但我想在此控件中显示刻度,以便用户可以知道步数。 / p>

此解决方案支持Android和ios。 以下是我正在使用的控件: -

<Slider x:Name="slider" HorizontalOptions="FillAndExpand"
                    Maximum="{Binding Maximum}"
                    Minimum="{Binding Minimum}" />

有人可以通过链接或代码段来帮助我吗?

3 个答案:

答案 0 :(得分:1)

所以我最终结束了Android的这个解决方案: -

protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
        {
            base.OnElementChanged(e);

            if (this.Control != null)
            {
                var slider = (MySlider)this.Element;

                this.Control.TickMark = Resources.GetDrawable(Resource.Drawable.Icon);//works by setting whole slider image
                //this.Control.SetThumb(Resources.GetDrawable(Resource.Drawable.Icon));//works by setting thumbnail movable image

                Control.Max = (int)(slider.Maximum - slider.Minimum);//shows RHS value plus one
                Control.Progress = (int)slider.Value;
            }
        }

答案 1 :(得分:0)

Xamarin.Forms附带的滑块没有任何刻度线。 基本上你有三个选择:

1)制作一个自定义Xamarin表单视图,其中包含一个包含滑块的网格和几个形成刻度线的BoxView,并将所需的值公开为BindableProperties。 亲:可以很快完成,不需要自定义渲染器 骗局:不是最优雅的解决方案

2)制作自定义渲染器,以您希望的方式渲染滑块。 Pro:更好的解决方案,因为您只需要将自定义滑块添加到视图中 Con:您需要为处理刻度线绘图的每个目标平台创建自定义渲染器

3)寻找合适的组件或nuGet包,其中包含适合您需要的滑块

答案 2 :(得分:0)

您可以尝试使用带有刻度的xamarin表单滑块

https://xamarinexperience.blogspot.com/2019/03/how-to-add-tick-marks-on-sliders-in.html