Как сделать запись как редактор в Xamarin.Forms? - PullRequest
0 голосов
/ 16 мая 2019

Я создаю мобильное приложение, в котором мне нужно отправить сообщение для запроса или поддержки, когда пользователь создает сообщение такого типа, а затем нажимает кнопку возврата или готово с клавиатуры. Высота записи должна быть скорректирована, а если пользователь нажимает на кнопку назад, чем это также должно быть управляемым. В этом я не могу использовать Editor контроль. Я использую общий проект для разработки приложения.

Я пытаюсь использовать следующий код:

Sample.xaml

 <StackLayout Padding="50" HeightRequest="150">
    <Entry TextChanged="Entry_TextChanged" x:Name="EntryCustom"/>
 </StackLayout>

Sample.xaml.cs

private void Entry_TextChanged(object sender, TextChangedEventArgs args)
{
    int isElse = 0;
    if (args != null && args.OldTextValue != null && args.NewTextValue != null)
    {
        string[] oldval = args.OldTextValue.Split('\r');
        string[] Newval = args.NewTextValue.Split('\r');
        if (oldval.Count() > Newval.Count())
        {
            EntryCustom.HeightRequest = EntryCustom.HeightRequest - 33;
            isElse = 2;
        }
        else
            isElse = 1;
    }
    if (args.OldTextValue != null && (args.NewTextValue == "\n" || args.NewTextValue.EndsWith("\r")) && EntryCustom.HeightRequest < 100 && (isElse == 1 || args != null || args.OldTextValue.Count() > args.NewTextValue.Count()))
        EntryCustom.HeightRequest = EntryCustom.HeightRequest + 33;
}

Может кто-нибудь разобраться в этом и предложить мне, что я должен изменить в коде?

1 Ответ

0 голосов
/ 16 мая 2019

Вы должны использовать редактор.Используйте <Editor AutoSize="TextChanges"/>, и редактор отрегулирует его размер на основе введенного текста.

...