Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A dátumválasztó lehetővé teszi, hogy a felhasználók érintéssel, egérrel vagy billentyűzettel adjanak meg egy honosított dátumértéket.
Ez a megfelelő vezérlő?
Dátumválasztóval lehetővé teszi a felhasználó számára, hogy egy ismert dátumot( például születési dátumot) válasszon, ahol a naptár környezete nem fontos.
Ha a naptár környezete fontos, fontolja meg naptárdátumválasztó vagy naptárnézethasználatát.
A megfelelő dátum vezérlőelem kiválasztásáról további információt a Dátum- és idővezérlők cikkben talál.
Példák
A belépési pont megjeleníti a kiválasztott dátumot. Amikor a felhasználó kiválasztja a belépési pontot, a választófelület függőlegesen kinyílik középről, így a felhasználó kiválaszthatja a kívánt beállítást. A dátumválasztó átfedi a többi felhasználói felületet; nem tolja el a többi felhasználói felületet.
Dátumválasztó létrehozása
- Fontos API-k:DatePicker osztály, SelectedDate tulajdonság
![]()
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ű dátumválasztót címsorral.
<DatePicker x:Name="exampleDatePicker" Header="Pick a date"/>
DatePicker exampleDatePicker = new DatePicker();
exampleDatePicker.Header = "Pick a date";
Az eredményként kapott dátumválasztó a következőképpen néz ki:
A dátumválasztó formázása
Alapértelmezés szerint a dátumválasztó a napot, a hónapot és az évet jeleníti meg. Ha a dátumválasztó forgatókönyve nem követeli meg az összes mezőt, elrejtheti azokat, amelyekre nincs szüksége. Egy mező elrejtéséhez állítsa a megfelelő mezőVisible tulajdonságát false: DayVisible, MonthVisiblevagy YearVisible.
Itt csak az évre van szükség, így a nap és a hónap mezők rejtve vannak.
<DatePicker x:Name="yearDatePicker" Header="In what year was Microsoft founded?"
MonthVisible="False" DayVisible="False"/>
A ComboBox-beli egyes DatePicker sztringtartalmát egy DateTimeFormatteráltal hozzák létre. A DateTimeFormatter tájékoztatja, hogyan formázható a dátumérték egy formátum sablon vagy formátummintamegadásával. További információ: DayFormat, MonthFormatés YearFormat tulajdonságok.
Itt egy formátumminta a hónap egész számként és rövidítésként való megjelenítésére szolgál. A formátummintához konstans sztringeket adhat hozzá, például a hónap rövidítése körüli zárójeleket: ({month.abbreviated}).
<DatePicker MonthFormat="{}{month.integer(2)} ({month.abbreviated})" DayVisible="False"/>
Dátumértékek
A dátumválasztó vezérlőelem Date/DateChanged és SelectedDate/SelectedDateChanged API-kkal rendelkezik. Ezek között az a különbség, hogy a Date nem null értékű, míg SelectedDate null értékű.
A SelectedDate értéke a dátumválasztó feltöltésére szolgál, és alapértelmezés szerint null. Ha SelectedDatenull, a Date tulajdonság értéke 1600.12.31.; ellenkező esetben a Date érték szinkronizálva lesz a SelectedDate értékkel. Ha SelectedDatenull, a választó "nincs beállítva", és dátum helyett a mezőneveket jeleníti meg.
Beállíthatja a MinYear és MaxYear tulajdonságait, hogy korlátozza a megadható dátumértékeket a választóban. Alapértelmezés szerint a MinYear az aktuális dátum előtt 100 évvel, a MaxYear pedig az aktuális dátumtól 100 évvel korábbi értékre van állítva.
Ha csak MinYear vagy MaxYearállít be, győződjön meg arról, hogy a beállított dátum és a másik dátum alapértelmezett értéke alapján érvényes dátumtartományt hoz létre; ellenkező esetben a választóban nem lesz kiválasztható dátum. Például, ha csak a yearDatePicker.MaxYear = new DateTimeOffset(new DateTime(900, 1, 1)); van beállítva, az érvénytelen dátumtartományt hoz létre az alapértelmezett MinYearértékkel.
Dátumérték inicializálása
A dátumtulajdonságok nem állíthatók be XAML attribútumsztringként, mert a Windows Runtime XAML-elemző nem rendelkezik konverziós logikával a sztringek dátummá konvertálásához DateTime / DateTimeOffset objektumként. Íme néhány javasolt módszer az objektumok kódban való definiálására és az aktuális dátumtól eltérő dátumra való beállítására.
-
DateTime: Példányosítson egy Windows.Globalization.Calendar objektumot (az aktuális dátumra van inicializálva). A dátum módosításához állítsa be a Yearértéket, vagy hívja meg a(z) AddYearsfüggvényt. Ezután hívja meg Calendar.GetDateTime, és a visszaadott
DateTimehasználatával állítsa be a dátumtulajdonságot. - DateTimeOffset: Hívja meg a konstruktort. A System.DateTime belsőesetén használja a konstruktor szignatúráját. Vagy hozzon létre egy alapértelmezett DateTimeOffset (inicializálva az aktuális dátumra), és hívja meg AddYears.
Egy másik lehetséges módszer egy adatobjektumként vagy adatkörnyezetben elérhető dátum definiálása, majd a dátumtulajdonság beállítása XAML-attribútumként, amely egy {Binding} korrektúrakiterjesztésre hivatkozik,, amely adatként tudja elérni a dátumot.
Megjegyzés:
A dátumértékekkel kapcsolatos fontos információkért tekintse meg a DateTime és a Naptár értékeket a Dátum és idő vezérlőelemek című cikkben.
Ez a példa bemutatja a SelectedDate, MinYearés MaxYear tulajdonságait különböző DatePicker vezérlőelemeken.
<DatePicker x:Name="yearDatePicker" MonthVisible="False" DayVisible="False"/>
<DatePicker x:Name="arrivalDatePicker" Header="Arrival date"/>
public MainPage()
{
this.InitializeComponent();
// Set minimum year to 1900 and maximum year to 1999.
yearDatePicker.SelectedDate = new DateTimeOffset(new DateTime(1950, 1, 1));
yearDatePicker.MinYear = new DateTimeOffset(new DateTime(1900, 1, 1));
// Using a different DateTimeOffset constructor.
yearDatePicker.MaxYear = new DateTimeOffset(1999, 12, 31, 0, 0, 0, new TimeSpan());
// Set minimum to the current year and maximum to five years from now.
arrivalDatePicker.MinYear = DateTimeOffset.Now;
arrivalDatePicker.MaxYear = DateTimeOffset.Now.AddYears(5);
}
Dátumértékek használata
Az alkalmazás dátumértékének használatához általában adatkötést használ a SelectedDate tulajdonsághoz, vagy kezeli a SelectedDateChanged eseményt.
Ha példát szeretne látni arra, hogyan lehet egy
DatePickerésTimePickerértéket együtt használni egyetlenDateTimeé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 egy DatePicker segítségével választhatja ki a felhasználó érkezési dátumát. Kezeli a SelectedDateChanged eseményt, hogy frissítse a nevű arrivalDateTime példányt.
<StackPanel>
<DatePicker x:Name="arrivalDatePicker" Header="Arrival date"
DayFormat="{}{day.integer} ({dayofweek.abbreviated})"
SelectedDateChanged="arrivalDatePicker_SelectedDateChanged"/>
<Button Content="Clear" Click="ClearDateButton_Click"/>
<TextBlock x:Name="arrivalText" Margin="0,12"/>
</StackPanel>
public sealed partial class MainPage : Page
{
DateTime arrivalDateTime;
public MainPage()
{
this.InitializeComponent();
// Set minimum to the current year and maximum to five years from now.
arrivalDatePicker.MinYear = DateTimeOffset.Now;
arrivalDatePicker.MaxYear = DateTimeOffset.Now.AddYears(5);
}
private void arrivalDatePicker_SelectedDateChanged(DatePicker sender, DatePickerSelectedValueChangedEventArgs args)
{
if (arrivalDatePicker.SelectedDate != null)
{
arrivalDateTime = new DateTime(args.NewDate.Value.Year, args.NewDate.Value.Month, args.NewDate.Value.Day);
}
arrivalText.Text = arrivalDateTime.ToString();
}
private void ClearDateButton_Click(object sender, RoutedEventArgs e)
{
arrivalDatePicker.SelectedDate = null;
arrivalText.Text = string.Empty;
}
}
Kapcsolódó cikkek
Windows developer