TimePicker

.NET Multi-platform App UI (.NET MAUI) TimePicker は、プラットフォームのタイム ピッカー コントロールを呼び出し、時刻を選択できるようにします。

TimePicker は次の特性を定義します。

  • TimeSpan 型の Time は、選択した時刻で、既定値は TimeSpan 0 です。 TimeSpan 型は、午前 0 時からの時間を示します。
  • string 型の Format は、標準またはカスタムの .NET 書式設定文字列です。既定値は「t」で、短い形式の時刻パターンです。
  • Color 型の TextColor は、選択した時間の表示に使用する色です。
  • FontAttributes 型の FontAttributes は、FontAtributes.None が既定値です。
  • string 型の FontFamily は、null が既定値です。
  • double 型の FontSize は、-1.0 が既定値です。
  • CharacterSpacing: double 型、TimePicker テキストの文字間の間隔。

これらのプロパティはすべて、BindableProperty オブジェクトがサポートしています。つまり、スタイルを指定でき、プロパティをデータ バインディングの対象にすることができます。 Time プロパティには既定のバインディング モード BindingMode.TwoWay があります。つまり、Model-View-ViewModel (MVVM) パターンを使用するアプリケーションのデータ バインディングの対象にすることができます。

Note

TimePicker には、選択した新しい Time 値を示すイベントは含まれません。 この通知を受け取る必要がある場合は、PropertyChanged イベントのイベント ハンドラーを追加できます。

TimePicker を作成する

XAML で Time プロパティを指定すると、値は TimeSpan に変換して検証され、ミリ秒の数が 0 以上であることと、時間数が 24 未満であることを確認します。 時刻コンポーネントはコロンで区切る必要があります。

<TimePicker Time="4:15:26" />

TimePickerBindingContext プロパティが、(たとえば) SelectedTime という TimeSpan 型のプロパティを含むビューモデルのインスタンスに設定されている場合は、次のように TimePicker をインスタンス化できます。

<TimePicker Time="{Binding SelectedTime}" />

この例では、Time プロパティはビューモデルの SelectedTime プロパティに初期化されます。 Time プロパティにはバインディング モード TwoWay があるため、ユーザーが選択した新しい時刻は自動的にビューモデルに反映されます。

コードで、Time プロパティを TimeSpan 型の値に初期化できます。

TimePicker timePicker = new TimePicker
{
  Time = new TimeSpan(4, 15, 26) // Time set to "04:15:26"
};

フォント プロパティの設定については、「フォント」をご覧ください。

TimePicker とレイアウト

TimePicker で、CenterStartEnd などの制約のない水平レイアウト オプションを使用できます。

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

ただし、これは推奨されません。 Format プロパティの設定によっては、選択した時刻に異なる表示幅が必要になる場合があります。 たとえば、「T」の書式指定文字列を使用すると、TimePicker ビューに長い形式で時刻が表示され、"4:15:26 AM" では短い形式の時刻 (「t」) の "4:15 AM" よりも表示幅が大きくなります。 プラットフォームによっては、この違いにより、TimePicker ビューのレイアウトの幅が変わったり、表示が切り詰められたりする可能性があります。

ヒント

TimePickerGrid セルに配置するときは、TimePickerFill に既定の HorizontalOptions を設定し、幅に Auto を使用しないようにすることをお勧めします。

プラットフォームによる違い

このセクションでは、TimePicker コントロールとのプラットフォーム固有の違いについて説明します。

Android では、Format プロパティが優先され、コントロールで表示されます。 ただし、コントロールを押してピッカー コントロールを表示する場合は、時間、分、時刻のみを変更できます。