Megosztás a következőn keresztül:


Időválasztó

Az időválasztó szabványosított módot biztosít arra, hogy a felhasználók érintéssel, egérrel vagy billentyűzettel adjanak meg egy időértéket.

Időbeállító példája

Ez a megfelelő vezérlő?

Egy időválasztóval lehetővé teszi, hogy a felhasználó egyetlen időértéket válasszon.

A megfelelő vezérlőelem kiválasztásáról további információt a Dátum- és idővezérlők című cikkben talál.

Példák

A belépési pont megjeleníti a kiválasztott időpontot, és amikor a felhasználó rákattint, a választó felület középről függőlegesen kinyílik, hogy lehetőséget adjon számára a kijelölésre. Az időválasztó átfedi a többi felhasználói felületet; nem tolja félre a többi elemet.

Példa egy bővülő időválasztóra

Időválasztó létrehozása

WinUI 3 Katalógus ikon A WinUI 3 Katalógus alkalmazás interaktív példákat tartalmaz a WinUI vezérlőire és funkcióira. Kérje le az alkalmazást a Microsoft Áruházból vagy keresse meg a forráskódot a GitHub webhelyen.

Ez a példa bemutatja, hogyan hozhat létre egyszerű időválasztót fejlécekkel.

<TimePicker x:Name="arrivalTimePicker" Header="Arrival time"/>
TimePicker arrivalTimePicker = new TimePicker();
arrivalTimePicker.Header = "Arrival time";

Az eredményként kapott időválasztó a következőképpen néz ki:

Időbeállító példája

Az időválasztó formázása

Alapértelmezés szerint az időválasztó egy 12 órás órát jelenít meg egy AM/PM választóval. A ClockIdentifier tulajdonságot "24HourClock" értékre állíthatja, hogy ehelyett 24 órás órát jelenítsen meg.

<TimePicker Header="24HourClock" SelectedTime="18:21" ClockIdentifier="24HourClock"/>

24 órás időválasztó óra.

Beállíthatja a MinuteIncrement tulajdonságot, hogy jelezze a percválasztóban megjelenő időnövekményeket. A 15 például azt határozza meg, hogy a TimePicker perc vezérlőelem csak a 00, 15, 30, 45 választási lehetőségeket jeleníti meg.

<TimePicker MinuteIncrement="15"/>

15 perces növekményeket megjelenítő időválasztó.

Időértékek

Az időválasztó vezérlőelem Time/TimeChanged és SelectedTime/SelectedTimeChanged API-kkal rendelkezik. Ezek között az a különbség, hogy a Time nem null értékű, míg SelectedTime null értékű.

A SelectedTime értéket az időválasztó feltöltésére használjuk, és alapértelmezettként az null. Ha SelectedTimenull, a Time tulajdonságot 0 TimeSpan-re állítják be; ellenkező esetben a Time érték szinkronizálódik a SelectedTime értékkel. Ha SelectedTimenull, a választó "törölve lesz", és idő helyett a mezőneveket jeleníti meg.

Egy időválasztó, amelyen nincs idő kijelölve.

Időérték inicializálása

A kódban inicializálhatja az időtulajdonságokat egy típusértékre TimeSpan:

TimePicker timePicker = new TimePicker
{
    SelectedTime = new TimeSpan(14, 15, 00) // Seconds are ignored.
};

Az időértéket attribútumként is beállíthatja az XAML-ben. Ez valószínűleg a legegyszerűbb, ha már deklarálja az objektumot az TimePicker XAML-ben, és nem használ kötéseket az időértékhez. Használjon egy sztringet a következő formában: Hh:Mm, ahol Hh az óra, és 0 és 23 között lehet, Mm pedig a perc, ami 0 és 59 között lehet.

<TimePicker SelectedTime="14:15"/>

Megjegyzés:

Fontos információkért a dátum- és időértékekről tekintse meg a Dátum- és idővezérlők cikk DateTime és naptári értékek részét.

Az időértékek használata

Az alkalmazás időértékének használatához általában egy adatkötést használ a SelectedTime vagy Az idő tulajdonsághoz, közvetlenül a kódban használja az időtulajdonságokat, vagy kezeli a SelectedTimeChanged vagy TimeChanged eseményt .

Ha példát szeretne látni arra, hogyan lehet egy DatePicker és TimePicker értéket együtt használni egyetlen DateTime érték frissítésére, tekintse meg a Naptár, dátum és idő vezérlőelemeket – Dátumválasztó és időválasztó együttes használata.

Itt a tulajdonság a SelectedTime kiválasztott idő és az aktuális időpont összehasonlítására szolgál.

Figyelje meg, hogy mivel a SelectedTime tulajdonság nullelhető, explicit módon típuskonverzióval kell átalakítania DateTimetípussá, például így: DateTime myTime = (DateTime)(DateTime.Today + checkTimePicker.SelectedTime);. A Time tulajdonság azonban típuskonverzió nélkül is használható, a következőhöz hasonló módon: DateTime myTime = DateTime.Today + checkTimePicker.Time;.

Időválasztó, gomb és szövegfelirat.

<StackPanel>
    <TimePicker x:Name="checkTimePicker"/>
    <Button Content="Check time" Click="{x:Bind CheckTime}"/>
    <TextBlock x:Name="resultText"/>
</StackPanel>
private void CheckTime()
{
    // Using the Time property.
    // DateTime myTime = DateTime.Today + checkTimePicker.Time;
    // 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);
    }
}