猿问

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

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


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


<Slider x:Name="slider" HorizontalOptions="FillAndExpand"

                    Maximum="{Binding Maximum}"

                    Minimum="{Binding Minimum}" />

有人可以帮助我提供链接或代码片段吗?


qq_花开花谢_0
浏览 261回答 2
2回答

浮云间

所以我最终以这个适用于 Android 的解决方案结束:-protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; base.OnElementChanged(e);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (this.Control != null)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var slider = (MySlider)this.Element;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.Control.TickMark = Resources.GetDrawable(Resource.Drawable.Icon);//works by setting whole slider image&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //this.Control.SetThumb(Resources.GetDrawable(Resource.Drawable.Icon));//works by setting thumbnail movable image&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Control.Max = (int)(slider.Maximum - slider.Minimum);//shows RHS value plus one&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Control.Progress = (int)slider.Value;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }

幕布斯7119047

Xamarin.Forms 附带的滑块没有任何刻度线。基本上你有三个选择:1) 使用包含滑块和多个 BoxView 的网格制作自定义 Xamarin 表单视图,形成您的刻度线,并将所需的值公开为 BindableProperties。优点:可以很快完成,不需要自定义渲染器缺点:不是最优雅的解决方案2)制作自定义渲染器,按照您想要的方式渲染滑块。优点:更好的解决方案,因为您只需要将自定义滑块添加到视图 缺点:您需要为每个处理刻度线绘制的目标平台创建一个自定义渲染器3) 寻找合适的组件或包含适合您需求的滑块的 nuGet 包
随时随地看视频慕课网APP
我要回答