gpt4 book ai didi

c# - 如何使用自定义渲染器在 Xamarin.Forms、Android、iOs、UWP 上更改 slider 的颜色?

转载 作者:行者123 更新时间:2023-11-30 20:26:26 25 4
gpt4 key购买 nike

我已经成功更改了 Android 上 slider 的颜色,创建了一个自定义渲染器,这里是示例。

[assembly: ExportRenderer(typeof(CustomSlider), typeof(CustomSliderRenderer))]
namespace ForteMultiplataform.Droid
{
public class CustomSliderRenderer : SliderRenderer
{
public CustomSliderRenderer(Context context) : base(context)
{
}

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

if (e.NewElement != null)
{
string colorSlider = "#008000";
Control.ProgressDrawable.SetColorFilter(Xamarin.Forms.Color.FromHex(colorSlider).ToAndroid(), PorterDuff.Mode.SrcIn);

// Set Progress bar Thumb color
Control.Thumb.SetColorFilter(
Xamarin.Forms.Color.FromHex(colorSlider).ToAndroid(),
PorterDuff.Mode.SrcIn);
}
}
}
}

如何为 iOS 和 UWP 实现这一目标?

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

if (e.NewElement != null)
{
string colorSlider = "#008000";
//What do I put here??
}
}

最佳答案

iOS 自定义渲染器

根据Apple Docs , UISlider 具有我们需要更新的三个属性:

  • MaximumTrackTintColor
    • 将轨道的色调指定为 slider 拇指的前导侧。该值默认为 slider 的继承色调颜色。在运行时使用 minimumTrackTintColor 属性访问此值。
  • MinimumTrackTintColor
    • 将轨道的色调指定为 slider 拇指的尾部。在运行时使用 maximumTrackTintColor 属性访问此值。
  • ThumbTintColor
    • 控制 slider slider 的色调。在运行时使用 thumbTintColor 属性访问此值

代码

[assembly: ExportRenderer(typeof(CustomSlider), typeof(CustomSliderRenderer))]
namespace CustomSliderColor.iOS
{
public class CustomSliderRenderer : SliderRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
{
base.OnElementChanged(e);

if (Control != null)
{
const string colorSlider = "#008000";

Control.MaximumTrackTintColor = Color.FromHex(colorSlider).ToUIColor();
Control.MinimumTrackTintColor = Color.FromHex(colorSlider).ToUIColor();
Control.ThumbTintColor = Color.FromHex(colorSlider).ToUIColor();
}
}
}
}

关于c# - 如何使用自定义渲染器在 Xamarin.Forms、Android、iOs、UWP 上更改 slider 的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49924715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com