다음을 통해 공유


DatePicker

.NET 다중 플랫폼 앱 UI(.NET MAUI) DatePicker 는 플랫폼의 날짜 선택 컨트롤을 호출하고 날짜를 선택할 수 있도록 합니다.

DatePicker 는 8개의 속성을 정의합니다.

  • MinimumDate 1900년의 첫째 날로 기본 설정되는 형식 DateTime의 형식입니다.
  • MaximumDate 의 형식 DateTime이며, 기본값은 2100년 마지막 날입니다.
  • Date 의 형식 DateTime이며, 선택한 날짜이며, 기본값은 값 DateTime.Today입니다.
  • Format 형식 string, 표준 또는 사용자 지정 .NET 서식 문자열로, 기본값은 긴 날짜 패턴인 "D"입니다.
  • TextColor 형식 Color으로, 선택한 날짜를 표시하는 데 사용되는 색입니다.
  • FontAttributes 형식 FontAttributes의 기본값은 .입니다 FontAtributes.None.
  • FontFamily 형식 string의 기본값은 .입니다 null.
  • FontSize 형식 double의 기본값은 -1.0입니다.
  • double 형식의 CharacterSpacingDatePicker 텍스트를 구성하는 문자 사이의 간격입니다.

8개 속성은 모두 개체에 의해 BindableProperty 지원됩니다. 즉, 스타일을 지정할 수 있으며 속성은 데이터 바인딩의 대상이 될 수 있습니다. 속성에는 Date 기본 바인딩 모드 BindingMode.TwoWay가 있습니다. 즉, MVVM(Model-View-ViewModel) 패턴을 사용하는 애플리케이션에서 데이터 바인딩의 대상이 될 수 있습니다.

Warning

설정할 MinimumDate 때 항상 MaximumDate. MinimumDate 보다 작거나 같은지 확인합니다 MaximumDate. 그렇지 않으면 DatePicker 예외가 발생합니다.

DatePicker (는 Date ) 포함 MinimumDate 됩니다 MaximumDate. 둘 사이에 DatePicker 있지 않도록 Date 설정되거나 MaximumDate 설정되면 MinimumDate 값을 Date조정합니다.

DatePicker 사용자가 날짜를 선택하면 이벤트가 발생 DateSelected 합니다.

DatePicker 만들기

DateTime XAML에서 값을 지정하면 XAML 파서는 인수와 함께 CultureInfo.InvariantCulture 메서드를 사용하여 DateTime.Parse 문자열을 값으로 DateTime 변환합니다. 날짜는 2자리 월, 2자리 일, 4자리 연도를 슬래시로 구분하여 정확한 형식으로 지정해야 합니다.

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

속성이 BindingContext 명명 MinDateMaxDateSelectedDate 된 형식 DateTime 의 속성을 포함하는 viewmodel의 인스턴스로 설정된 경우(예:) 다음과 같이 인스턴스화 DatePicker 할 수 있습니다.DatePicker

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

이 예제에서는 세 가지 속성이 모두 viewmodel의 해당 속성으로 초기화됩니다. 속성의 Date 바인딩 모드 TwoWay가 있으므로 사용자가 선택한 모든 새 날짜가 viewmodel에 자동으로 반영됩니다.

속성 DateDatePicker 바인딩이 없는 경우 앱은 사용자가 새 날짜를 선택할 때 알림을 받을 처리기를 DateSelected 이벤트에 연결해야 합니다.

코드에서 , MaximumDateDate 속성을 형식DateTime의 값으로 초기화MinimumDate할 수 있습니다.

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

글꼴 속성 설정에 대한 자세한 내용은 글꼴을 참조 하세요.

DatePicker 및 레이아웃

다음과 같이 CenterStart제약이 없는 가로 레이아웃 옵션을 사용할 수 있습니다 End DatePicker.

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

그러나 이는 권장되지 않습니다. 속성 설정 Format 에 따라 선택한 날짜에 다른 표시 너비가 필요할 수 있습니다. 예를 들어 "D" 형식 문자열을 사용하면 DateTime 날짜가 긴 형식으로 표시되고 "2018년 9월 12일 수요일"에는 "2018년 5월 4일 금요일"보다 더 큰 표시 너비가 필요합니다. 플랫폼에 따라 이러한 차이로 인해 보기의 DateTime 레이아웃 너비가 변경되거나 디스플레이가 잘리게 될 수 있습니다.

셀에 넣을 Grid DatePicker 때 너비 Auto 를 사용하지 않고 기본 HorizontalOptions 설정을 Fill DatePicker사용하는 것이 가장 좋습니다.

Windows에서 DatePicker 지역화

Windows DatePicker 를 대상으로 하는 앱의 경우 선택기 대화 상자의 월 및 일 이름을 포함하여 사용자의 설정에 지역화된 형식으로 날짜를 표시하려면 프로젝트의 Package.appxmanifest 파일에 특정 구성이 필요합니다. 패키지 매니페스트의 요소를 지역화하면 사용자 로캘의 문화권 규범을 준수하여 사용자 환경이 향상됩니다.

Package.appxmanifest 파일 내에서 <xref:Microsoft.Maui.Controls.DatePicker> 지원되는 언어를 선언해야 하는 날짜 형식 및 문자열을 지역화합니다.

Windows에서 지역화를 구성 DatePicker 하려면 다음 단계를 수행합니다.

  1. 리소스 섹션을 찾습니다.

    프로젝트의 폴더로 이동하고 Platforms\Windows 코드 편집기 또는 Visual Studio에서 Package.appxmanifest 파일을 엽니다. Visual Studio를 사용하는 경우 파일의 원시 XML을 보고 있는지 확인합니다. 처음에 다음을 <Resources> 포함할 수 있는 섹션을 찾습니다.

    <Resources>
        <Resource Language="x-generate" />
    </Resources>
    
  2. 지원되는 언어를 지정합니다.

    지원되는 각 언어에 대해 <Resource Language="x-generate"><Resource /> 요소로 바꿉니다. 언어 코드는 영어(미국), 스페인어(스페인fr-FR), es-ES 프랑스어(프랑스) 또는 de-DE 독일어(독일)와 같은 en-US BCP-47 언어 태그 형식이어야 합니다. 예를 들어 영어(미국) 및 스페인어(스페인<Resources>) 모두에 대한 지원을 추가하려면 다음과 같이 섹션을 수정해야 합니다.

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

이 구성을 DatePicker 사용하면 사용자의 로캘에 따라 날짜 형식, 월 및 일이 표시되므로 여러 지역에서 앱의 유용성과 접근성이 크게 향상됩니다.

.NET MAUI 앱의 지역화에 대한 자세한 내용은 지역화를 참조하세요.