也許這個片段可以幫助:
public class CircleImage : Image
{
public static readonly BindableProperty CurvedBackgroundColorProperty =
BindableProperty.Create(
nameof(CurvedBackgroundColor),
typeof(Color),
typeof(CurvedCornersLabel),
Color.Default);
public Color CurvedBackgroundColor
{
get { return (Color)GetValue(CurvedBackgroundColorProperty); }
set { SetValue(CurvedBackgroundColorProperty, value); }
}
}
//Android/iOS
[assembly: ExportRenderer(typeof(CircleImage), typeof(CircleImageRenderer))]
namespace SchedulingTool.iOS.Renderers
{
public class CircleImageRenderer : ImageRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Image> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
var xfViewReference = (CircleImage)Element;
//Here you can reference xfViewReference.CurvedBackgroundColor to assign what ever is binded.
}
}
}
}
我希望你主要的想法,你可以創建自己的可綁定屬性和訪問他們在本地渲染。
如果如預期,你可以隨時下載的NuGet(已你需要的一切)一切不走:
https://github.com/jamesmontemagno/ImageCirclePlugin
爲什麼不公開一個屬性來設置顏色? – Jason
優秀的建議,絕對理想。我自己的嘗試是徒勞的,因此是個問題。 –
[ImageCirclePlugin](https://github.com/jamesmontemagno/ImageCirclePlugin)已經有一個'BorderColor',您可以在共享代碼中進行更新。渲染器將檢測到更改並相應更新。 – Ada