次の方法で共有


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 です。
  • FontFamily (string 型): 既定値は null です。
  • FontSize (double 型): 既定値は -1.0 です。
  • CharacterSpacing: double 型、TimePicker テキストの文字間の間隔。

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

Note

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

さらに、TimePicker は、選択した時間が変更されたときに発生する TimeSelected イベントを定義します。 TimeSelected イベントに付随する TimeChangedEventArgs オブジェクトには NewTimeOldTime プロパティがあり、それぞれ新しい時間と古い時間を指定します。

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 と共に CenterStart または End のような制約のない水平レイアウト オプションを使用できます。

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

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

ヒント

既定の HorizontalOptions 設定の FillTimePicker と共に使用し、Grid セルに TimePicker を入力するときに Auto の幅を使用しないことをお勧めします。

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

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

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