How to set Placeholder and PlaceHolder Color in Editor Xamarin Forms

前端 未结 2 1929
孤街浪徒
孤街浪徒 2021-01-21 02:21

How to set Placeholder Text and Placeholder Color in Editor in Xamarin Forms.

It has no default Functiona

2条回答
  •  有刺的猬
    2021-01-21 02:55

    You will need a custom renderer for that (Here is the Android Custom Renderer) you will need another renderer for iOS:

    public class PlaceholderEditor : Editor
    {
        public static readonly BindableProperty PlaceholderProperty =
            BindableProperty.Create(view => view.Placeholder, String.Empty);
    
        public PlaceholderEditor()
        {
        }
    
        public string Placeholder
        {
            get
            {
                return (string)GetValue(PlaceholderProperty);
            }
    
            set
            {
                SetValue(PlaceholderProperty, value);
            }
        }
    }
    
    public class PlaceholderEditorRenderer : EditorRenderer
    {
        public PlaceholderEditorRenderer()
        {
        }
    
        protected override void OnElementChanged(
            ElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
    
            if (e.NewElement != null)
            {
                var element = e.NewElement as PlaceholderEditor;
                this.Control.Hint = element.Placeholder;
            }
        }
    
        protected override void OnElementPropertyChanged(
            object sender,
            PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);
    
            if (e.PropertyName == PlaceholderEditor.PlaceholderProperty.PropertyName)
            {
                var element = this.Element as PlaceholderEditor;
                this.Control.Hint = element.Placeholder;
            }
        }
    }
    

    And for the color you may need something like this (Android):

    Control.SetHintTextColor(Android.Graphics.Color.White);
    

    There already a thread for this in the Xamarin Forums: https://forums.xamarin.com/discussion/20616/placeholder-editor

    And more about Custom Renderers information below: https://developer.xamarin.com/guides/xamarin-forms/custom-renderer/

提交回复
热议问题