共用方式為


DatePicker

.NET 多平臺應用程式 UI (.NET MAUI) DatePicker 會叫用平臺的日期選擇器控件,並可讓您選取日期。

DatePicker 定義八個屬性:

  • MinimumDateDateTime別為 ,預設為1900年的第一天。
  • MaximumDateDateTime別 為 ,預設為2100年的最後一天。
  • DateDateTime別為 ,選取的日期預設為 值 DateTime.Today
  • Format 類型 string為,這是 預設為 「D」 的標準自定義 .NET 格式字串,也就是完整日期模式。
  • TextColorColor別為 ,用來顯示選取日期的色彩。
  • FontAttributesFontAttributes別為 ,預設為 FontAtributes.None
  • FontFamilystring別為 ,預設為 null
  • FontSizedouble別 為 ,預設為 -1.0。
  • CharacterSpacing類型 double為 的 ,是文字字元 DatePicker 之間的間距。

這八個屬性都受到 BindableProperty 物件支援,這表示可以設定樣式,而且屬性可以是數據系結的目標。 屬性 Date 的默認系結模式 BindingMode.TwoWay為 ,這表示它可以是使用Model-View-ViewModel (MVVM) 模式之應用程式中數據系結的目標。

警告

設定 MinimumDateMaximumDate時,請確定 一 MinimumDate 律小於或等於 MaximumDate。 否則, DatePicker 將會引發例外狀況。

可確保 DatePicker 媒體與 Date MaximumDate之間MinimumDate,且包含 。 如果 MinimumDateMaximumDate 已設定為 ,使其 Date 不在它們之間, DatePicker 將會調整 的值 Date

當用戶選取日期時,會 DatePicker 引發 DateSelected 事件。

建立 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 的實例,其中包含名為 MinDateMaxDateSelectedDate (例如) 類型的DateTime屬性,您可以具現化DatePicker如下:

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

在此範例中,這三個屬性都會初始化為 viewmodel 中的對應屬性。 Date由於 屬性具有的TwoWay系結模式,因此用戶選取的任何新日期都會自動反映在 viewmodel 中。

DatePicker如果 不包含其 Date 屬性上的系結,您的應用程式應該將處理程式附加至DateSelected事件,以在用戶選取新的日期時通知該事件。

在程式代碼中,您可以將、 MaximumDateDate 屬性初始化MinimumDate為 類型的DateTime值:

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

如需設定字型屬性的詳細資訊,請參閱 字型

DatePicker 和版面配置

您可以使用不受限制的水平版面設定選項, 例如 CenterStartEnd 搭配 DatePicker

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

不過,不建議這樣做。 根據屬性的設定,選取的 Format 日期可能需要不同的顯示寬度。 例如,“D” 格式字串會導致 DateTime 以長格式顯示日期,而 “Wednesday, September 12, 2018” 需要大於 “Friday, May 4, 2018” 的顯示寬度。 視平臺而定,此差異可能會導致 DateTime 檢視在版面配置中變更寬度,或讓顯示器遭到截斷。

提示

最好將預設設定與搭配DatePicker使用,而不是在放入GridDatePicker儲存格時使用的寬度。Fill HorizontalOptionsAuto

在 Windows 上當地語系化 DatePicker

針對以 Windows 為目標的應用程式,請確定 DatePicker 以當地語系化為使用者設定的格式顯示日期,包括選擇器對話方塊中的月份和天數名稱,需要專案 Package.appxmanifest 檔案中的特定設定。 將套件指令清單中的元素當地語系化可藉由遵守用戶地區設定的文化規範來改善用戶體驗。

本地化 中的<xref:Microsoft.Maui.Controls.DatePicker>日期格式和字串需要宣告 Package.appxmanifest 檔案內支持的語言。

請遵循下列步驟,在 DatePicker Windows 上設定當地語系化:

  1. 找出 [資源] 區段。

    流覽至項目的資料夾, Platforms\Windows 並在程式碼編輯器或Visual Studio中開啟 Package.appxmanifest 檔案。 如果使用 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 應用程式中本地化的詳細資訊,請參閱 當地語系化