TimePicker.SelectedTime プロパティ

定義

タイム ピッカーで現在選択されている時刻を取得または設定します。

public:
 property IReference<TimeSpan> ^ SelectedTime { IReference<TimeSpan> ^ get(); void set(IReference<TimeSpan> ^ value); };
IReference<TimeSpan> SelectedTime();

void SelectedTime(IReference<TimeSpan> value);
public System.Nullable<System.TimeSpan> SelectedTime { get; set; }
var iReference = timePicker.selectedTime;
timePicker.selectedTime = iReference;
Public Property SelectedTime As Nullable(Of TimeSpan)

プロパティ値

タイム ピッカーで現在選択されている時間。

Windows の要件

デバイス ファミリ
Windows 10, version 1809 (10.0.17763.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v7.0 で導入)

ここでは、SelectedTime プロパティを使用して、選択した時刻と現在の時刻を比較します。

SelectedTime プロパティでは null 値が許容されるため、これを DateTime に明示的にキャストする必要があることにご注意ください。たとえば、DateTime myTime = (DateTime)(DateTime.Today + checkTimePicker.SelectedTime); のようにします。

時刻の選択、ボタン、テキスト ラベル。

<StackPanel>
    <TimePicker x:Name="checkTimePicker"/>
    <Button Content="Check time" Click="{x:Bind CheckTime}"/>
    <TextBlock x:Name="resultText"/>
</StackPanel>
private void CheckTime()
{
    // Using the SelectedTime property (nullable requires cast to DateTime).
    DateTime myTime = (DateTime)(DateTime.Today + checkTimePicker.SelectedTime);
    if (DateTime.Now >= myTime)
    {
        resultText.Text = "Your selected time has already past.";
    }
    else
    {
        string hrs = (myTime - DateTime.Now).Hours.ToString();
        string mins = (myTime - DateTime.Now).Minutes.ToString();
        resultText.Text = string.Format("Your selected time is {0} hours, {1} minutes from now.", hrs, mins);
    }
}

注釈

タイム ピッカー コントロールには、 Time/TimeChanged API と SelectedTime/SelectedTimeChanged API の両方があります。 両者の違いは、Time では null 値が許容されないのに対して、SelectedTime では null 値が許容されることです。

SelectedTime の値は、時刻の選択を設定するのに使用され、既定では null に指定されています。 SelectedTimenull の場合、Time プロパティの TimeSpan は 0 に設定されます。それ以外の場合、Time の値は SelectedTime の値と同期されます。 SelectedTimenull の場合、ピッカーは 'unset' になり、時刻ではなくフィールド名が表示されます。

アプリの実行中に現在の時刻を追跡する値にコード バインドを指定しない限り、時刻はリアルタイムで増加しません (時計のように)。

時刻値を XAML の属性として設定できます。 これは、XAML で TimePicker オブジェクトを既に宣言していて、時刻値にバインドを使用していない場合に最も簡単です。 Hh:Mm という形式の文字列を使用します。Hh は時間で、0 から 23 の間、Mm は分で、0 から 59 の間にすることができます。 "0" は Hh または Mm の初期文字にすることができ、通常は 0 から 9 の値を明確にするために含まれます。 たとえば、"9:5" と "09:05" はどちらも有効であり、同じ時刻を表しますが、"09:05" はマークアップで読みやすくなります。

コードで時刻を設定するには、プログラミング言語に応じてさまざまな手法を使用できます。 値は、C# および Visual Basic の 場合は System.TimeSpan 、Visual C++ コンポーネント拡張機能 (C++/CX) の 場合は Windows.Foundation.TimeSpan として表されます。 適切な System.TimeSpanSelectedTime を生成する最も簡単な方法は、 TimeSpan.Parse静的メソッドを使用することです。 Hh:Mm (時間:分) の形式で文字列を使用します。

コードで設定するか XAML に設定するかに関係なく、 TimePicker クラスには、設定しようとしたときに保持される値の強制ロジックがあります。 日の値は無視されます。 秒の値は無視されます (たとえば、30 を超える秒は次の分に切り上げられません)。 秒の小数部は無視されます。 値は折り返されません (たとえば、"24:00" の値が無効です)。内の TimeSpan 最小値は 0 (00:00、午前 0 時) の時刻であり、最大値は 23:59 です。 範囲外の値は例外をスローしますが、仕様によっては、 の検証と強制SelectedTimeではなく、構築でTimeSpan例外が発生する可能性があります。

Visual C++ コンポーネント拡張機能 (C++/CX) で値を設定SelectedTimeするには、TimeSpan 構造体のフィールドを設定Durationします。 Duration は、時間を 100 ナノ秒単位で指定します。時間:分表現との間で変換するための独自のロジックを記述します。

コードまたは XAML で に SelectedTime 設定した値は、コントロールに表示される初期値を指定します。 実行時のアプリでは、その値は通常、タイム ピッカーのポップアップでユーザーによって設定されます。 ユーザーによって選択された時間が設定され、SelectedTimeChanged イベントは、ユーザーが変更を行い、タイム ピッカー ポップアップの [チェック マーク] ボタンを押して選択内容をコミットしたときに発生します。

適用対象