Учебник по Editor в Xamarin.Forms
Прежде чем работать с этим учебником, вы должны выполнить:
- Краткое руководство Создание первого Xamarin.Forms приложения.
- Руководство по StackLayout.
В этом руководстве описано следующее:
- Создайте Xamarin.Forms
Editor
в XAML. - Отвечать на текст в изменении
Editor
. - Настраивать поведение
Editor
.
С помощью Visual Studio 2019 или Visual Studio для Mac вы создадите простое приложение, демонстрирующее, как настроить поведение Editor
. На следующих снимках экрана показано готовое приложение.
Вы также будете использовать Горячую перезагрузку XAML для Xamarin.Forms, чтобы просматривать изменения пользовательского интерфейса без перестроения приложения.
Создание Editor
Для работы с этим руководством у вас должен быть последний выпуск Visual Studio 2019 с установленной рабочей нагрузкой Разработка мобильных приложений на .NET. Кроме того, вам потребуется компьютер Mac для сборки учебного приложения на iOS. Сведения об установке платформы Xamarin см. в статье Установка Xamarin. Сведения о подключении Visual Studio 2019 к узлу сборки Mac см. в статье Связывание с Mac при разработке для Xamarin.iOS.
Запустите Visual Studio и создайте пустое приложение Xamarin.Forms с именем EditorTutorial.
Внимание
Для фрагментов кода на C# и XAML в этом руководстве необходимо решение с именем EditorTutorial. Выбор другого имени приведет к ошибкам сборки при копировании кода из этого руководства в решение.
Дополнительные сведения о создаваемой библиотеке .NET Standard см. в разделе Структура приложения Xamarin.Forms статьи Подробное изучение кратких руководств по Xamarin.Forms.
В обозревателе решений дважды щелкните файл MainPage.xaml в проекте EditorTutorial, чтобы открыть его. В MainPage.xaml удалите весь код шаблона и замените его приведенным ниже кодом:
<?xml version="1.0" encoding="utf-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="EditorTutorial.MainPage"> <StackLayout Margin="20,35,20,20"> <Editor Placeholder="Enter multi-line text here" HeightRequest="200" /> </StackLayout> </ContentPage>
Этот код декларативно определяет пользовательский интерфейс для страницы, который состоит из
Editor
вStackLayout
. СвойствоEditor.Placeholder
определяет текст заполнителя, который отображается при первом появленииEditor
. Кроме того, свойствоHeightRequest
указывает высотуEditor
в аппаратно-независимых единицах.На панели инструментов Visual Studio нажмите кнопку Пуск (треугольная кнопка, похожая на кнопку воспроизведения) для запуска приложения в выбранном удаленном симуляторе iOS или эмуляторе Android.
Примечание.
В то время, как в Android существует функция, которая указывает высоту
Editor
, в iOS такая функция отсутствует.В Visual Studio остановите приложение.
Реагирование на изменения текста
В MainPage.xaml измените объявление
Editor
таким образом, чтобы оно установило обработчик для событийTextChanged
иCompleted
.<Editor Placeholder="Enter multi-line text here" HeightRequest="200" TextChanged="OnEditorTextChanged" Completed="OnEditorCompleted" />
Этот код устанавливает событие
TextChanged
для обработчика событийOnEditorTextChanged
, аCompleted
— для обработчикаOnEditorCompleted
. Оба обработчика событий будут созданы на следующем шаге.В обозревателе решений в проекте EditorTutorial разверните узел MainPage.xaml и дважды щелкните файл MainPage.xaml.cs, чтобы открыть его. Затем в файле MainPage.xaml.cs добавьте обработчики событий
OnEditorTextChanged
иOnEditorCompleted
в класс.void OnEditorTextChanged(object sender, TextChangedEventArgs e) { string oldText = e.OldTextValue; string newText = e.NewTextValue; } void OnEditorCompleted(object sender, EventArgs e) { string text = ((Editor)sender).Text; }
Если текст в
Editor
изменяется, выполняется методOnEditorTextChanged
. Аргументsender
является объектомEditor
, ответственным за запуск событияTextChanged
, и может использоваться для доступа к объектуEditor
. АргументTextChangedEventArgs
содержит старые и новые текстовые значения (до и после изменения текста).По завершении редактирования выполняется метод
OnEditorCompleted
. Это достигается путем расфокусировкиEditor
или дополнительно нажатием кнопки "Готово" на iOS. Аргументsender
является объектомEditor
, ответственным за запуск событияTextChanged
, и может использоваться для доступа к объектуEditor
.На панели инструментов Visual Studio нажмите кнопку Пуск (треугольная кнопка, похожая на кнопку воспроизведения) для запуска приложения в выбранном удаленном симуляторе iOS или эмуляторе Android.
Установите точки останова в два обработчика событий, введите текст в
Editor
и просмотрите запуск событийTextChanged
. РасфокусируйтеEditor
, чтобы просмотреть запуск событийCompleted
.Дополнительные сведения о событиях
Editor
см. в разделе События и интерактивность руководства Editor в Xamarin.Forms.
Настройка поведения
В файле MainPage.xaml измените объявление
Editor
, чтобы настроить его поведение:<Editor Placeholder="Enter multi-line text here" AutoSize="TextChanges" MaxLength="200" IsSpellCheckEnabled="false" IsTextPredictionEnabled="false" />
Этот код задает свойства, позволяющие настроить поведение
Editor
. СвойствоAutoSize
имеет значениеTextChanges
; это означает, что высотаEditor
увеличивается, когда оно заполняется текстом, и уменьшается, когда текст удаляется. СвойствоMaxLength
ограничивает длину входных данных, допустимую дляEditor
. Кроме того, свойствоIsSpellCheckEnabled
задано какfalse
, чтобы отключить проверку орфографии, а свойствуIsTextPredictionEnabled
задано значениеfalse
для отключения прогнозирования текста и автоматического прогнозирования текста.Если приложение по-прежнему работает, сохраните изменения в файле, после чего пользовательский интерфейс приложения в симуляторе или эмуляторе будет автоматически обновлен. В противном случае нажмите на панели инструментов Visual Studio кнопку Запуск (треугольная кнопка, похожая на кнопку воспроизведения), чтобы запустить приложение в выбранном удаленном симуляторе iOS или эмуляторе Android. Введите текст в
Editor
и обратите внимание, что высотаEditor
увеличивается по мере его заполнения текстом, а также уменьшается по мере удаления текста; максимальное число вводимых символов — 200:В Visual Studio остановите приложение.
Дополнительные сведения о настройке поведения
Editor
см. в руководстве Editor в Xamarin.Forms.
Поздравляем!
Поздравляем с завершением этого учебника, где вы научились:
- Создайте Xamarin.Forms
Editor
в XAML. - Отвечать на текст в изменении
Editor
. - Настраивать поведение
Editor
.
Следующие шаги
Чтобы узнать больше об основах создания мобильных приложений с помощью Xamarin.Forms, перейдите к учебнику по изображениям.
Дополнительные ссылки
Возникла проблема с этим разделом? Если это так, отправьте нам отзыв, чтобы мы исправили этот раздел.