Aracılığıyla paylaş


Saat seçici

Zaman seçici, kullanıcıların dokunma, fare veya klavye girişi kullanarak bir zaman değeri seçmesine izin vermek için standartlaştırılmış bir yol sağlar.

Zaman seçici örneği

Doğru kontrol bu mu?

Kullanıcının tek bir saat değeri seçmesine izin vermek için zaman seçici kullanın.

Doğru denetimi seçme hakkında daha fazla bilgi için Tarih ve saat denetimleri makalesine bakın.

Örnekler

Giriş noktası seçilen saati görüntüler; kullanıcı giriş noktasını seçtiğinde, seçici yüzeyi ortasından itibaren dikey olarak genişleyerek kullanıcının bir seçim yapmasına olanak sağlar. Zaman seçici, diğer kullanıcı arabiriminin üzerine gelir ama diğer kullanıcı arabirimini yerinden kıpırdatmaz.

Zaman seçici genişletme örneği

Zaman seçici oluşturma

WinUI 3 Galeri simgesi WinUI 3 Galeri uygulaması, WinUI denetimlerinin ve özelliklerinin etkileşimli örneklerini içerir. uygulamayı Microsoft Store adresinden alın veya GitHub üzerindeki kaynak koduna göz atın.

Bu örnek, üst bilgi ile basit bir saat seçici oluşturmayı gösterir.

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

Sonuçta elde edilen zaman seçici şöyle görünür:

Zaman seçici örneği

Zaman seçiciyi biçimlendirme

Varsayılan olarak, saat seçici AM/PM seçimli olarak 12 saatlik bir saat gösterir. Bunun yerine 24 saatlik bir saat göstermek için ClockIdentifier özelliğini "24HourClock" olarak ayarlayabilirsiniz.

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

24 saatlik saat dilimi için bir saat seçici.

MinuteIncrement özelliğini dakika seçicide gösterilen zaman artışlarını gösterecek şekilde ayarlayabilirsiniz. Örneğin, 15 dakika denetiminin TimePicker yalnızca 00, 15, 30, 45 seçeneklerini görüntülediğini belirtir.

<TimePicker MinuteIncrement="15"/>

15 dakikalık artışları gösteren bir zaman seçici.

Saat değerleri

Zaman seçici denetiminde, hem Time/TimeChanged hem de SelectedTime/SelectedTimeChanged API'leri bulunur. Bunlar arasındaki fark, Time null olamazken SelectedTime null olabilir olmasıdır.

SelectedTime değeri, zaman seçiciyi doldurmak için kullanılır ve varsayılan olarak null. Eğer SelectedTimenull ise, Time özelliği 0 TimeSpan süreye ayarlanır; aksi takdirde Time değeri SelectedTime değeri ile eşitlenir. SelectedTime nullolduğunda seçici 'varsayılan' olur ve alan adlarını zaman yerine gösterir.

Zaman seçili olmayan bir zaman seçici.

Saat değerini başlatma

Kodda, saat özelliklerini TimeSpan türündeki bir değere başlatabilirsiniz.

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

Saat değerini XAML'de bir öznitelik olarak ayarlayabilirsiniz. Bu muhtemelen en kolay yöntemdir, eğer TimePicker nesnesini zaten XAML'de bildiriyorsanız ve zaman değeri için bağlama kullanmıyorsanız. Hh:Mm biçiminde bir dize kullanın; burada SS saat ve 0 ile 23 arasında, Mm dakika olabilir ve 0 ile 59 arasında olabilir.

<TimePicker SelectedTime="14:15"/>

Uyarı

Tarih ve saat değerleri hakkında önemli bilgiler için, Tarih ve saat denetimleri makalesindeki DateTime ve Calendar değerlerine bakın.

Zaman değerlerini kullanma

Uygulamanızda saat değerini kullanmak için, genellikle SelectedTime veya Time özelliğine bir veri bağlaması kullanır, zaman özelliklerini doğrudan kodunuzda kullanır ya da SelectedTimeChanged veya TimeChanged olayını işlersiniz.

Tek bir DatePicker değerini güncellemek için TimePicker ve DateTime'i birlikte kullanma örneğine bakın. Daha fazla bilgi için Takvim, tarih ve saat denetimleri - Tarih seçici ve saat seçiciyi birlikte kullanma.

Burada özelliği seçili SelectedTime saati geçerli saatle karşılaştırmak için kullanılır.

SelectedTime özelliği null atanabilir olduğundan, bunu açıkça DateTimeolarak atamanız gerekir. Örneğin: DateTime myTime = (DateTime)(DateTime.Today + checkTimePicker.SelectedTime);. Ancak Time özelliği, şöyle bir dönüştürme yapılmadan da kullanılabilir: DateTime myTime = DateTime.Today + checkTimePicker.Time;.

Zaman seçici, düğme ve metin etiketi.

<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);
    }
}