我在便携式项目中使用Xamarin表单Slider控件。这正确显示最小值,最大值。但我想在此控件中显示刻度,以便用户可以知道步数。 / p>
此解决方案支持Android和ios。 以下是我正在使用的控件: -
<Slider x:Name="slider" HorizontalOptions="FillAndExpand"
Maximum="{Binding Maximum}"
Minimum="{Binding Minimum}" />
有人可以通过链接或代码段来帮助我吗?
答案 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