为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Xamarin 表单滑块控件中显示刻度线

如何在 Xamarin 表单滑块控件中显示刻度线

C#
qq_花开花谢_0 2021-07-16 14:07:14
我在便携式项目中使用 Xamarin 表单 Slider 控件。这正确显示了最小值、最大值。但我想在此控件中显示刻度线,以便用户可以知道步骤数。该解决方案支持 Android 和 ios。以下是我正在使用的控件:-<Slider x:Name="slider" HorizontalOptions="FillAndExpand"                    Maximum="{Binding Maximum}"                    Minimum="{Binding Minimum}" />有人可以帮助我提供链接或代码片段吗?
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

所以我最终以这个适用于 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;

            }

        }


查看完整回答
反对 回复 2021-07-17
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

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

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

2)制作自定义渲染器,按照您想要的方式渲染滑块。优点:更好的解决方案,因为您只需要将自定义滑块添加到视图 缺点:您需要为每个处理刻度线绘制的目标平台创建一个自定义渲染器

3) 寻找合适的组件或包含适合您需求的滑块的 nuGet 包


查看完整回答
反对 回复 2021-07-17
  • 2 回答
  • 0 关注
  • 259 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信