CustomRenderer动态更改边框颜色

时间:2018-05-11 22:52:06

标签: xamarin xamarin.forms xamarin.ios

我有Entry,如果条目为空,我想在按下按钮时添加红色边框。因此我需要能够动态地改变颜色。 (标准验证员)

xaml:

<local:BorderChange Placeholder="Example Entry" BorderColor="#ff4444"></local:BorderChange>

PCL控制:

namespace Project
{
    public class BorderChange : Entry
    {
        public string BorderColor
        {
            get; 
            set;
        }
    }
}

iOS Customrenderer:

[assembly: ExportRenderer(typeof(BorderChange), typeof(BorderColorChange))]
namespace Project.iOS
{
    public class BorderColorChange : EntryRenderer
    {
    //init color

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

            if(Control != null)
            {
                Control.Layer.BorderColor = UIColor.Blue; //This is where i want to add my color
            }
        }
    }
} 
  • 如何将我的属性传递给CustomRenderer,以便我可以动态更改BorderColor参数?

1 个答案:

答案 0 :(得分:0)

满足此类需求的更好方法是使用Effects

Here是一个很好描述的示例,说明如何使用参数作为附加属性创建效果。您将能够从视图模型绑定一个属性(让我们直接说IsValid到该效果的附加属性)。