Выравнивание текста закладок в формах Xamarin

Я не знаю, как перенести текст заполнителя в поле ввода. У меня есть поле ввода, которое очень велико и хочет поместить текст заполнителя в начало.

1 ответ

Вам нужно будет создать собственный рендерер для каждой платформы, чтобы сгладить заполнитель примерно так:

public class PlaceholderEditor : Editor
{
 public static readonly BindableProperty PlaceholderProperty =
 BindableProperty.Create<placeholdereditor, string="">(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<editor> 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;
 }
 }
}
</editor></placeholdereditor,>

licensed under cc by-sa 3.0 with attribution.