Aracılığıyla paylaş


İlerleme kontrolleri

İlerleme denetimi, kullanıcıya uzun süre çalışan bir işlemin devam ettiğini belirten geri bildirim sağlar. Bu, ilerleme göstergesi görünür olduğunda kullanıcının uygulamayla etkileşim kuramayacağı ve kullanılan göstergeye bağlı olarak bekleme süresinin ne kadar sürebileceğini de gösterebileceği anlamına gelebilir.

İlerleme türleri

Kullanıcıya bir işlemin devam ettiğini gösteren iki denetim vardır: ProgressBar aracılığıyla veya ProgressRing aracılığıyla. Hem ProgressBar hem de ProgressRing, kullanıcının uygulamayla etkileşime girip geçemediğini belirten iki durum vardır.

  • Hem ProgressBar hem de ProgressRing için belirlenen durum, görevin tamamlanma yüzdesini gösterir. Bu, süresi bilinen bir işlem sırasında kullanılmalıdır, ancak ilerleme durumu kullanıcının uygulamayla etkileşimini engellememelidir.
  • ProgressBar için belirsiz durum, bir işlemin devam ettiğini, uygulamayla kullanıcı etkileşimini engellemediğini ve tamamlanma süresinin bilinmediğini gösterir.
  • ProgressRing için belirsiz durum, bir işlemin devam ettiğini, uygulamayla kullanıcı etkileşimini engellediğini ve tamamlanma süresinin bilinmediğini gösterir.

Ayrıca, ilerleme denetimi salt okunurdur ve etkileşimli değildir. Bu, kullanıcının bu denetimleri doğrudan çağıramayacağı veya kullanamayacağı anlamına gelir.

Yönetim Ekran
Belirsiz İlerleme Çubuğu ProgressBar belirsiz
ProgressBar'ı belirleme ProgressBar determinate
Belirsiz İlerleme Halkası Belirsiz ProgressRing durumu
Belirli İlerleme Çubuğu ProgressRing durumunu belirleme

Doğru kontrol bu mu?

Bir şeyin gerçekleştiğini göstermeye çalışırken hangi denetimin veya hangi durumun (belirlenimsiz ve belirsiz) kullanılacağı her zaman açık değildir. Bazen bir görev, ilerleme denetimi gerektirmeyebilecek kadar açıktır ve bazen ilerleme denetimi kullanılsa bile kullanıcıya hangi işlemin devam ettiğini açıklamak için bir metin satırı gereklidir.

İlerleme Çubuğu

  • Denetimin tanımlı bir süresi mi yoksa tahmin edilebilir bir sonu mu var?

    Ardından belirlenen bir ProgressBar kullanın ve yüzdeyi veya değeri uygun şekilde güncelleştirin.

  • Kullanıcı işlemin ilerleme durumunu izlemek zorunda kalmadan devam edebilir mi?

    ProgressBar kullanımda olduğunda etkileşim kalıcı değildir; bu genellikle kullanıcının bu işlemin tamamlanmasıyla engellenmediği ve bu özellik tamamlanana kadar uygulamayı başka şekillerde kullanmaya devamebileceği anlamına gelir.

  • Anahtar Sözcükler

    İşleminiz bu anahtar sözcüklerin etrafındaysa veya ilerleme işlemiyle birlikte bu anahtar sözcüklerle eşleşen bir metin gösteriyorsanız; ProgressBar kullanmayı göz önünde bulundurun:

    • Yükleme...
    • Veri Alma
    • Çalışma...

İlerleme Halkası

  • İşlem kullanıcının devam etmek için beklemesine neden olacak mı?

    Bir işlem tamamlanana kadar uygulama ile tüm etkileşimin (veya büyük bir kısmının) beklemesini gerektiriyorsa, belirsiz İlerleme Halkası daha iyi bir seçimdir.

    • Denetimin tanımlı bir süresi mi yoksa tahmin edilebilir bir sonu mu var?

    Görselin çubuk yerine halka olmasını istiyorsanız determinate ProgressRing kullanın ve yüzdeyi veya değeri uygun şekilde güncelleştirin.

  • Uygulama kullanıcının bir görevi tamamlanmasını mı bekliyor?

    Bu durumda, belirsiz bir ProgressRing kullanın çünkü kullanıcı için bilinmeyen bir bekleme süresini belirtmeleri amaçlandı.

  • Anahtar Sözcükler

    İşleminiz bu anahtar sözcüklerin etrafındaysa veya bu anahtar sözcüklerle eşleşen ilerleme işlemiyle birlikte metin gösteriyorsanız; ProgressRing kullanmayı göz önünde bulundurun:

    • Canlandırıcı
    • Oturum açma...
    • Bağlanma...

İlerleme göstergesi gerekmez

  • Kullanıcının bir şeyler olduğunu bilmesi gerekiyor mu?

    Örneğin, uygulama arka planda bir şey indiriyorsa ve kullanıcı indirmeyi başlatmadıysa, kullanıcının bunu bilmesi gerekmez.

  • İşlem, kullanıcı etkinliğini engellemeyen ve kullanıcıya çok az (ama yine de biraz) ilgi gösteren bir arka plan etkinliği mi?

    Uygulamanız sürekli görünür olması gerekmeyen görevleri gerçekleştirirken metin kullanın, ancak yine de durumu göstermeniz gerekir.

  • Kullanıcı yalnızca işlemin tamamlanmasını mı önemsiyor?

    Bazen yalnızca işlem tamamlandığında bir bildirim göstermek veya işlemin hemen tamamlandığını belirten bir görsel vermek ve son rötuşları arka planda çalıştırmak en iyisidir.

İlerleme denetimleri en iyi yöntemleri

Bazen bu farklı ilerleme denetimlerinin ne zaman ve nerede kullanılacağına dair bazı görsel gösterimleri görmek en iyisidir:

İlerleme Çubuğu - Belirli

Belirli ProgressBar örneği

İlk örnek, determinate ProgressBar'dır. İşlemin süresi bilindiğinde, yükleme, indirme veya ayarlama işlemlerinde belirli ilerleme çubuğu en iyisidir.

ProgressBar - Belirsiz

ProgressBar belirsiz örneği

İşlemin ne kadar süreceği bilinmediğinde, belirsiz bir ProgressBar kullanın. Belirsiz ProgressBar'lar, sanallaştırılmış bir listeyi doldururken ve belirsizden belirli bir ProgressBar'a sorunsuz bir görsel geçiş oluştururken de iyidir.

  • İşlem sanallaştırılmış bir koleksiyonda mı?

    Öyleyse, her liste öğesine göründükleri sırada bir ilerleme göstergesi koymayın. Bunun yerine, bir ProgressBar kullanın ve öğelerin getirildiğini göstermek için bu çubuğu yüklenen öğe koleksiyonunun en üstüne yerleştirin.

ProgressRing - Belirsiz

ProgressRing belirsiz örneği

Belirsiz ilerleme halkası, uygulamayla kullanıcı etkileşimi tamamen durdurulduğunda veya uygulama, kullanıcıdan devam etmesi için bir giriş beklediğinde kullanılır. "Oturum açma..." yukarıdaki örnek ProgressRing için mükemmel bir senaryodur, kullanıcı işaret tamamlanana kadar uygulamayı kullanmaya devam edemez.

İlerleme Halkası - Belirlenmiş

ProgressRing kesin belirli örneği

İşlemin süresi bilindiğinde ve halka görseli tercih edildiğinde, yükleme, indirme, ayarlama vb. işlemlerde, belirli bir ilerleme gösteren ProgressRing en iyi seçenektir.

İlerleme kontrolü oluşturma

WinUI 3 Galeri uygulamasını açın ve ProgressBar veya ProgressRing bölümüne bakın.

WinUI 3 Galeri uygulaması çoğu WinUI 3 denetimi, özelliği ve işlevselliğine ilişkin etkileşimli örnekler içerir. Uygulamayı Microsoft Store'dan alın veya GitHub'dan kaynak kodunu alın

her iki ilerleme denetimi de oldukça basittir; ancak denetimlerin bazı görsel özelliklerinin özelleştirileceği açıkça belli değildir.

ProgressRing'i Boyutlandırma

ProgressRing istediğiniz kadar büyük olabilir, ancak yalnızca 20x20epx kadar küçük olabilir. ProgressRing'i yeniden boyutlandırmak için yüksekliği ve genişliğini ayarlamanız gerekir. Yalnızca yükseklik veya genişlik ayarlanırsa, denetim minimum boyutlandırmayı (20x20epx) varsayar; bunun tersine yükseklik ve genişlik iki farklı boyuta ayarlanırsa, boyutların küçük olduğu varsayılır. ProgressRing'inizin ihtiyaçlarınıza uygun olduğundan emin olmak için hem yüksekliği hem de genişliği aynı değere ayarlayın:

<ProgressRing Height="100" Width="100"/>

ProgressRing'inizi görünür hale getirmek ve animasyon eklemek için IsActive özelliğini true olarak ayarlamanız gerekir:

<ProgressRing IsActive="True" Height="100" Width="100"/>
progressRing.IsActive = true;

İlerleme denetimlerini renklendirma

Varsayılan olarak, ilerleme denetimlerinin ana renklendirmesi sistemin vurgu rengine ayarlanır. Bu fırçayı geçersiz kılmak için her iki kontrol öğesinde de ön plan özelliğini değiştirmeniz yeterlidir.

<ProgressRing IsActive="True" Height="100" Width="100" Foreground="Blue"/>
<ProgressBar Width="100" Foreground="Green"/>

ProgressRing için ön plan renginin değiştirilmesi halkanın dolgu rengini değiştirir. ProgressBar için ön plan özelliği çubuğun dolgu rengini değiştirir; çubuğun doldurulmamış bölümünü değiştirmek için arka plan özelliğini geçersiz kılmanız yeterlidir.

Bekleme imlecini gösterme

Bazen, uygulamanın veya işlemin düşünmek için zamana ihtiyacı olduğunda kısa bir bekleme imleci göstermek en iyisidir ve kullanıcıya bekleme imlecinin görünür olduğu uygulama veya alanın bekleme imleci kaybolana kadar etkileşime alınmaması gerektiğini belirtmeniz gerekir.

Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Wait, 10);

UWP ve WinUI 2

Önemli

Bu makaledeki bilgiler ve örnekler, Windows Uygulama SDK'sı ve WinUI 3kullanan uygulamalar için iyileştirilmiştir, ancak genellikle WinUI 2kullanan UWP uygulamaları için geçerlidir. Platforma özgü bilgiler ve örnekler için UWP API başvurusuna bakın.

Bu bölüm, denetimi bir UWP veya WinUI 2 uygulamasında kullanmak için ihtiyacınız olan bilgileri içerir.

UWP uygulamaları için ilerleme denetimleri WinUI 2'nin bir parçası olarak eklenir. Yükleme yönergeleri de dahil olmak üzere daha fazla bilgi için bkz. WinUI 2. Bu denetimin API'leri hem Windows.UI.Xaml.Controls hem de Microsoft.UI.Xaml.Controls ad alanlarında mevcuttur.

Tüm denetimler için en güncel stilleri, şablonları ve özellikleri almak için en son WinUI 2'yi kullanmanızı öneririz. WinUI 2.2 veya üzeri, bu denetim için yuvarlatılmış köşeler kullanan yeni bir şablon içerir. Daha fazla bilgi için bkz . Köşe yarıçapı.

Bu makaledeki kodu WinUI 2 ile kullanmak için, projenize dahil edilen Windows UI Kitaplığı API'lerini temsil etmek için XAML'de bir diğer ad kullanın (muxckullanıyoruz). Daha fazla bilgi için WinUI 2'yi kullanmaya başlama hakkında bölümüne bakın.

xmlns:muxc="using:Microsoft.UI.Xaml.Controls"

<muxc:ProgressBar />
<muxc:ProgressRing />