C# 如何在Xamarin forms iOS中从自定义渲染器滑块中删除thumb?

C# 如何在Xamarin forms iOS中从自定义渲染器滑块中删除thumb?,c#,xamarin.forms,xamarin.ios,C#,Xamarin.forms,Xamarin.ios,因此,我创建了一个自定义渲染器滑块,因为我想稍微调整一下样式及其宽度。我可以很好地处理宽度,但当我试图去除拇指头时,它不会被删除 我尝试了两种Xamarin.Forms.Color.Transparent.ToUIColor()和UIColor.Clear,但拇指仍然在那里。我打算只显示条,所以在我的xaml中将其设置为IsEnabled false。现在我只需要那个拇指图像消失:) 知道我做错了什么吗 这是iOS代码呈现程序: public class Slider_iOS : SliderR

因此,我创建了一个自定义渲染器滑块,因为我想稍微调整一下样式及其宽度。我可以很好地处理宽度,但当我试图去除拇指头时,它不会被删除

我尝试了两种
Xamarin.Forms.Color.Transparent.ToUIColor()
UIColor.Clear
,但拇指仍然在那里。我打算只显示条,所以在我的xaml中将其设置为IsEnabled false。现在我只需要那个拇指图像消失:)

知道我做错了什么吗

这是iOS代码呈现程序:

public class Slider_iOS : SliderRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
    {

        SetNativeControl(new MySlideriOS());
        base.OnElementChanged(e);
    }
}

public class MySlideriOS : UISlider
{

    public MySlideriOS()
    {
        this.ThumbTintColor = UIColor.Clear;
        this.HorizontalAlignment = UIControlContentHorizontalAlignment.Fill;
        this.VerticalAlignment = UIControlContentVerticalAlignment.Fill;
    }

    public override CGRect TrackRectForBounds(CGRect forBounds)
    {
        CGRect rect = base.TrackRectForBounds(forBounds);
        return new CGRect(rect.X, rect.Y, rect.Width, 10);
    }
}
public class Slider\u iOS:SliderRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
SetNativeControl(新MySlideriOS());
基础。一个要素发生变化(e);
}
}
公共类MySlideriOS:UISlider
{
公共MySlideriOS()
{
this.ThumbTintColor=UIColor.Clear;
this.HorizontalAlignment=uicontrol内容HorizontalAlignment.Fill;
this.VerticalAlignment=uicontrol内容VerticalAlignment.Fill;
}
公共覆盖CGRect TrackRectForBounds(CGRect forBounds)
{
CGRect rect=base.TrackRectForBounds(forBounds);
返回新的CGRect(rect.X,rect.Y,rect.Width,10);
}
}

如果UIColor.Clear不起作用,您可以尝试设置一个透明图像,这样就可以了

sliderImage.SetThumbImage(UIImage.FromFile("transparentIcon.png"), UIControlState.Normal);

我已经运行了你的代码。我发现当界面初始化时,滑块的透明背景仍然存在,但他不会随着滑块移动

您可以尝试将
Control.thumbtinkColor
添加到此处

public class Slider_iOS : SliderRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
    {
        base.OnElementChanged(e);
        Control.ThumbTintColor = UIColor.Clear; //add here
        SetNativeControl(new MySlideriOS());
    }
}
public class Slider\u iOS:SliderRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
Control.ThumbTintColor=UIColor.Clear;//添加到此处
SetNativeControl(新MySlideriOS());
}
}

你能提供一个错误的图像显示吗?你想显示什么?我试过了,但它仍然显示出你的直觉。如果我取消注释“SetNativeControl(new MySlideriOS());”,那么它可以工作,但是我没有获得按钮宽度功能OK,它显示出一点奇怪。是否添加
Control.ThumbTintColor=UIColor.Clear
berfore
SetNativeControl(新MySlideriOS())像我的答案那样的代码?