Xamarin формы: увеличение высоты редактора на основе количества символов - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть редактор, как показано ниже в моем проекте форм xamarin.

enter image description here

Когда я набираю на нем сообщение, мне нужно увеличитьвысота редактора в зависимости от количества символов.

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

<StackLayout
                HorizontalOptions="FillAndExpand"
                x:Name="tweetBox"
                VerticalOptions="End"
                Margin="0,0,0,10"
                BackgroundColor="#f2f2f2"
                Orientation="Horizontal">

                <Image 
                     WidthRequest="25"
                     HeightRequest="25"
                     VerticalOptions="Center"
                     Source="ic_add_blue_xx.png"
                     Margin="10,5,-5,5">
                    <Image.GestureRecognizers>
                        <TapGestureRecognizer
                            Tapped="ShowPicureOptions"
                            NumberOfTapsRequired="1" />
                    </Image.GestureRecognizers> 
                </Image>

                <Frame
                    Padding="0"
                    Margin="5,5,0,5"
                    HorizontalOptions="FillAndExpand"
                    CornerRadius="10">

                    <Editor 
                        x:Name="tweetText"
                        HorizontalOptions="FillAndExpand"
                        VerticalOptions="Center"
                        FontFamily="Bold"
                        BackgroundColor="White"
                        TextColor="#959595"
                        AutoSize="TextChanges"
                        PlaceholderColor="#959595"
                        Placeholder="  Enter Message..."/> 
                </Frame>

                <Image 
                    VerticalOptions="Center"
                    WidthRequest="25"
                    Margin="5,5,10,5"
                    HeightRequest="25"
                    HorizontalOptions="End"
                    Source="ic_send_xx.png"> 
                    <Image.GestureRecognizers>
                        <TapGestureRecognizer
                            Tapped="SendTweet_Icon_Clicked"
                            NumberOfTapsRequired="1" /> 
                    </Image.GestureRecognizers>
                </Image>
            </StackLayout>

1 Ответ

0 голосов
/ 23 ноября 2018

Он встроен в Xamarin.Forms сейчас.Просто используйте элемент управления Editor и установите для свойства AutoSize значение TextChanges.Обратите внимание, что автоматическое изменение размера не будет работать, если вы установите HeightRequest.

. Дополнительная информация здесь: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/text/editor

Обновление: из комментариев, которые мы решили, что замена StackLayout с помощью сетки помогаетВы достигнете результата.Это потому, что StackLayout просто занимает место, которое (изначально) занимают его дочерние элементы.Сетка способна динамически расти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...