【发布时间】:2019-10-09 20:22:49
【问题描述】:
我正在尝试为 Slider 控件添加一个 IOS 自定义渲染器。由于包装类 SlideriOS 事件没有触发,我需要 DragCompleted 事件。有人知道如何触发/将事件路由到控件?
[assembly: ExportRenderer(typeof(CustomGradientSlider), typeof(CustomGradientSliderRenderer))]
namespace HealMate.iOS.Renderers
{
public class CustomGradientSliderRenderer : SliderRenderer
{
public CGColor StartColor { get; set; }
public CGColor CenterColor { get; set; }
public CGColor EndColor { get; set; }
private UIImage GradImage { get; set; }
public string SelectionColor1 { get; set; }
public string SelectionColor2 { get; set; }
protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
{
if (Control == null)
{
var customSlider = e.NewElement as CustomGradientSlider;
StartColor = customSlider.StartColor.ToCGColor();
CenterColor = customSlider.CenterColor.ToCGColor();
EndColor = customSlider.EndColor.ToCGColor();
var slider = new SlideriOS
{
Continuous = true,
Height = (nfloat)customSlider.HeightRequest
};
SetNativeControl(slider);
Control.ValueChanged += OnControlValueChanged;
}
base.OnElementChanged(e);
}
...
public class SlideriOS : UISlider
{
public nfloat Height { get; set; }
public override CGRect TrackRectForBounds(CGRect forBounds)
{
var rect = base.TrackRectForBounds(forBounds);
return new CGRect(rect.X, rect.Y, rect.Width, Height);
}
}
}
如何触发滑块控件的 DragCompleted 事件? 谢谢!
【问题讨论】:
-
您好,您解决了吗。如果解决方法有帮助,请提前标记。
标签: c# ios xamarin slider custom-renderer