Поделиться через


DatePicker

Пользовательский интерфейс многоплатформенного приложения .NET (.NET MAUI) DatePicker вызывает элемент управления выбора дат и позволяет выбрать дату.

DatePicker определяет восемь свойств:

  • MinimumDate тип DateTime, который по умолчанию используется в первый день года 1900 года.
  • MaximumDate тип DateTime, который по умолчанию используется в последний день года 2100 года.
  • Date тип DateTime, выбранная дата, которая по умолчанию имеет значение DateTime.Today.
  • Formatтип string, стандартная или настраиваемая строка форматирования .NET, которая по умолчанию имеет значение "D", шаблон длинной даты.
  • TextColor тип Color, цвет, используемый для отображения выбранной даты.
  • FontAttributes тип FontAttributes, для которого по умолчанию используется FontAtributes.Noneзначение .
  • FontFamily тип string, для которого по умолчанию используется nullзначение .
  • FontSize тип double, который по умолчанию соответствует -1.0.
  • CharacterSpacing с типом double представляет собой интервал между знаками текста DatePicker.

Все восемь свойств поддерживаются BindableProperty объектами, что означает, что их можно стильировать, а свойства могут быть целевыми объектами привязки данных. Свойство Date имеет режим BindingMode.TwoWayпривязки по умолчанию, что означает, что это может быть цель привязки данных в приложении, использующем шаблон Model-View-ViewModel (MVVM).

Предупреждение

При установке MinimumDate и MaximumDateубедитесь, что значение MinimumDate всегда меньше или равно MaximumDate. DatePicker В противном случае вызовет исключение.

Гарантирует DatePicker , что Date между MinimumDate и MaximumDate, включительно. Если MinimumDate или MaximumDate задано таким образом, что Date между ними нет, DatePicker изменит значение Date.

DateSelected Вызывает DatePicker событие, когда пользователь выбирает дату.

Создание DatePicker

DateTime Если значение указано в XAML, средство синтаксического анализа XAML использует DateTime.Parse метод с аргументом CultureInfo.InvariantCulture для преобразования строки в DateTime значение. Даты должны быть указаны в точном формате: два цифры месяцев, двухзначные дни и четыре цифры лет, разделенные косой чертой:

<DatePicker MinimumDate="01/01/2022"
            MaximumDate="12/31/2022"
            Date="06/21/2022" />

BindingContext Если для свойства DatePicker задано значение экземпляра viewmodel, содержащего свойства типа DateTime с именемMinDate, MaxDateи SelectedDate (например, например), можно создать DatePicker экземпляр следующим образом:

<DatePicker MinimumDate="{Binding MinDate}"
            MaximumDate="{Binding MaxDate}"
            Date="{Binding SelectedDate}" />

В этом примере все три свойства инициализированы для соответствующих свойств в режиме просмотра. Date Так как свойство имеет режим TwoWayпривязки, любая новая дата, которую пользователь выбирает, автоматически отражается в моделье представления.

DatePicker Если свойство не содержит привязкуDate, приложение должно прикрепить обработчик к DateSelected событию, чтобы получить уведомление, когда пользователь выбирает новую дату.

В коде можно инициализировать MinimumDateMaximumDateDate и свойства в значения типаDateTime:

DatePicker datePicker = new DatePicker
{
    MinimumDate = new DateTime(2018, 1, 1),
    MaximumDate = new DateTime(2018, 12, 31),
    Date = new DateTime(2018, 6, 21)
};

Сведения о настройке свойств шрифта см. в разделе "Шрифты".

DatePicker и макет

Можно использовать неограниченный горизонтальный макет, например Center, Startили End с DatePicker:

<DatePicker ···
            HorizontalOptions="Center" />

Однако это делать не рекомендуется. В зависимости от параметра Format свойства выбранные даты могут требовать разные ширины отображения. Например, строка формата "D" приводит DateTime к отображению дат в длинном формате и "среда, 12 сентября 2018 г." требует большей ширины отображения, чем "пятница, 4 мая 2018 г.". В зависимости от платформы это различие может привести DateTime к изменению ширины представления в макете или усечения дисплея.

Совет

Рекомендуется использовать параметр по умолчанию HorizontalOptions и DatePickerне использовать ширину Auto при вводе DatePicker в ячейкуGrid.Fill

Локализация DatePicker в Windows

Для приложений, предназначенных для Windows, для DatePicker отображения дат в формате, локализованном для параметров пользователя, включая имена месяцев и дней в диалоговом окне выбора, требуется определенная конфигурация в файле Package.appxmanifest проекта. Локализация элементов в манифесте пакета улучшает взаимодействие с пользователем, следуя культурным нормам языкового стандарта пользователя.

Локализация форматов дат и строк в <xref:Microsoft.Maui.Controls.DatePicker> файле Package.appxmanifest требует объявления поддерживаемых языков.

Выполните следующие действия, чтобы настроить DatePicker локализацию в Windows:

  1. Найдите раздел "Ресурсы".

    Перейдите Platforms\Windows в папку проекта и откройте файл Package.appxmanifest в редакторе кода или Visual Studio. При использовании Visual Studio убедитесь, что вы просматриваете необработанный XML-код файла. <Resources> Найдите раздел, который может первоначально включать:

    <Resources>
        <Resource Language="x-generate" />
    </Resources>
    
  2. Укажите поддерживаемые языки.

    Замените <Resource Language="x-generate"> элементами <Resource /> для каждого из поддерживаемых языков. Код языка должен быть в виде тега языка BCP-47, например en-US для английского (США), испанского (Испания), es-ES fr-FR для французского (Франция) или de-DE для немецкого (Германия). Например, чтобы добавить поддержку английского (США) и испанского (Испания), необходимо изменить раздел<Resources>, чтобы выглядеть следующим образом:

    <Resources>
        <Resource Language="en-US" />
        <Resource Language="es-ES" />
    </Resources>
    

Эта конфигурация гарантирует, что DatePicker форматы даты, месяцы и дни будут отображаться в соответствии с языковым стандартом пользователя, что значительно повышает удобство использования и доступность приложения в разных регионах.

Дополнительные сведения о локализации в приложениях .NET MAUI см. в разделе "Локализация".