Aracılığıyla paylaş


Visual Studio İçin Bildirimler ve İlerleme Durumu

Bildirim sistemleri

Kullanıcıya Visual Studio'da neler olduğunu yazılım geliştirme görevleriyle ilgili olarak bilgilendirmenin çeşitli yolları vardır.

Herhangi bir bildirim uygularken:

  • Bildirim sayısını en düşük etkin sayıya kadar tutun. Bildirim iletileri, Visual Studio kullanıcılarının çoğunluğuna veya belirli bir özellik/özellik alanının kullanıcılarına uygulanmalıdır. Bildirimlerin aşırı kullanımı kullanıcıyı yanıltabilir veya sistemin kullanım kolaylığını azaltabilir.

  • Kullanıcının daha karmaşık seçimler yapmak ve daha fazla işlem yapmak için uygun bağlamı çağırmak için kullanabileceği net, eyleme dönüştürülebilir iletiler sunduğundan emin olun.

  • Zaman uyumlu ve zaman uyumsuz iletileri uygun şekilde sunun. Zaman uyumlu bildirimler, bir web hizmetinin kilitlenmesi veya bir kod özel durumu oluşturması gibi bir durumla hemen ilgilenilmesi gerektiğini gösterir. Kullanıcı, bu durumlardan, kalıcı bir iletişim kutusu gibi giriş gerektiren bir şekilde hemen haberdar edilmelidir. Zaman uyumsuz bildirimler, bir derleme işleminin tamamlanması veya bir web sitesi dağıtımının tamamlanması gibi, kullanıcının bilmesi gereken ancak hemen işlem yapması gerekmeyen bildirimlerdir. Bu iletiler daha ortamlı olmalı ve kullanıcının görev akışını kesintiye uğratmamalıdır.

  • Kalıcı iletişim kutularını yalnızca kullanıcının iletiyi kabul etmeden veya iletişim kutusunda sunulan bir karar vermeden önce başka işlem yapmasını önlemek için gerekli olduğunda kullanın.

  • Ortam bildirimleri artık geçerli olmadığında kaldırın. Bildirim aldığı sorunu gidermek için zaten bir işlem yapmışsa kullanıcının bildirimi kapatmasını gerektirmez.

  • Bildirimlerin yanlış bağıntılara yol açabileceğini unutmayın. Kullanıcılar, eylemlerinin bir veya daha fazlasının nedensel bir ilişki olmadığında bildirim tetiklediğini düşünebilir. Bildirim iletisinde bağlam, tetikleyici ve bildirimin kaynağı hakkında net olun.

Doğru yöntemi seçme

Kullanıcıya iletinizi bildirmek için doğru yöntemi seçmenize yardımcı olması için bu tabloyu kullanın.

Metot Kullanma Kullanmayın
Kalıcı hata iletisi iletişim kutuları Devam etmeden önce kullanıcı yanıtı gerektiğinde kullanın. Kullanıcıyı engellemeye ve akışını kesmeye gerek kalmadığında kullanmayın. İletiyi başka, daha az müdahaleci bir şekilde göstermek mümkünse kalıcı iletişim kutularını kullanmaktan kaçının.
IDE durum çubuğu İşlemin durumuyla ilgili ortam metinsel bilgiler olduğunda kullanın. Yalnız kullanmayın. En iyi başka bir geri bildirim mekanizmasıyla birlikte kullanılır.
Eklenmiş bilgi çubuğu Araç penceresinde veya belge penceresinde ilerleme durumunu, hata durumunu, sonuçları ve/veya eyleme dönüştürülebilir bilgileri bildirmek için kullanın. Bilgiler, bilgi çubuğunun yerleştirildiği konumla ilgili değilse kullanmayın.

Belge/araç penceresinin dışında kullanmayın.
Fare imleci değişiklikleri Bir işlemin devam ettiğini bildirmek için kullanılabilir. Farede sürükle/bırak işlemi devam ederken veya fare imlecinin çizim modu gibi belirli bir modda olduğu gibi bir durum değişikliği olduğunu bildirmek için de kullanılır. Kısa ilerleme değişiklikleri veya imlecin kabarması olasıysa (örneğin, işlemin tamamı yerine daha uzun süre çalışan bir işlemin bölümlerine bağlı olduğunda) kullanmayın.
İlerleme göstergeleri İlerleme durumunu bildirmeniz gerektiğinde kullanın (kesin veya belirsiz). Her biri için çeşitli ilerleme göstergesi türleri ve belirli kullanımlar vardır. Bkz. İlerleme göstergeleri.
Visual Studio Bildirimleri penceresi Bildirimler penceresi genel olarak genişletilebilir değildir. Bununla birlikte, lisansınızla ilgili kritik sorunlar ve Visual Studio güncelleştirmelerine veya paketlere yönelik bilgilendirme bildirimleri de dahil olmak üzere Visual Studio hakkında bir dizi ileti iletmek için kullanılır. Diğer bildirim türleri için kullanmayın.
Hata listesi Sorun doğrudan kullanıcının açık olan çözümüyle (hata/uyarı/bilgi) ilgili olduğunda, kod üzerinde işlem gerçekleştirmesi gerekebilir.

Bu, örneğin şunları içerir:

- Derleyici iletileri (hata/uyarı/bilgi)

- Kodla ilgili Kod Çözümleyicisi/Tanılama iletileri

- İleti oluşturma

Proje veya çözüm dosyalarıyla ilgili sorunlar için uygun olabilir, ancak önce Çözüm Gezgini bir göstergeyi göz önünde bulundurun.
Kullanıcının açık çözüm koduyla hiçbir ilişkisi olmayan öğeler için kullanmayın.
Düzenleyici bildirimleri: Ampul Açık dosyada var olan bir sorunu gidermek için kullanılabilecek bir düzeltmeniz olduğunda kullanın.

Ampul'ün, yeniden düzenleme gibi kullanıcının kodunda isteğe bağlı olarak kullanılabilecek Hızlı Eylemleri barındırmak için de kullanılması gerektiğini, ancak bu durumda "bildirim stili" gösterilmeyeceğini unutmayın.
Açık dosyayla ilişkisi olmayan öğeler için kullanmayın.
Düzenleyici bildirimleri: Dalgalı çizgiler Kullanıcıyı açık kodunun belirli bir aralığıyla ilgili bir sorun konusunda uyarmak için kullanın (örneğin, hatalar için kırmızı dalgalı çizgi). Açık kodlarının belirli bir yayılma alanıyla ilgili olmayan öğeler için kullanmayın.
Ekli durum çubukları Belirli bir araç penceresi, belge penceresi veya iletişim kutusu penceresi bağlamında içerik veya işlemle ilgili durumu sağlamak için kullanın. Belirli bir pencere içindeki içerikle ilişkisi olmayan genel ürün bildirimleri, işlemler veya öğeler için kullanmayın.
Windows tepsisi bildirimleri Kullanıma hazır olmayan işlemler veya yardımcı uygulamalar için bildirimleri ortaya çıkarmak için kullanın. IDE ile ilgili bildirimler için kullanmayın.
Bildirim balonları Uzak işlemi bildirmek veya IDE dışında değişiklik yapmak için kullanın. IDE içindeki işlemleri kullanıcıya bildirmek için bir araç olarak kullanmayın.

Bildirim yöntemleri

Kalıcı hata iletisi iletişim kutuları

Kullanıcının onayını veya eylemini gerektiren bir hata iletisi görüntülemek için kalıcı bir hata iletisi iletişim kutusu kullanılır.

Modal error message

Kullanıcıyı veritabanına geçersiz bir bağlantı dizesi konusunda uyaran kalıcı bir hata iletisi iletişim kutusu

IDE durum çubuğu

Kullanıcıların durum çubuğu metnini fark etme olasılığı, tüm bilgisayar deneyimleri ve Windows platformuyla ilgili belirli deneyimlerle ilişkilidir. Visual Studio müşteri tabanı her iki alanda da deneyimlenebilir, ancak bilgili Windows kullanıcıları bile durum çubuğundaki değişiklikleri kaçırabilir. Bu nedenle, durum çubuğu en iyi bilgilendirme amacıyla veya başka bir yerde sunulan bilgiler için yedekli bir ipucu olarak kullanılır. Kullanıcının hemen çözümlemesi gereken her türlü kritik bilgi bir iletişim kutusunda veya Bildirimler araç penceresinde sağlanmalıdır.

Visual Studio durum çubuğu, çeşitli bilgi türlerinin görüntülenmesine izin verecek şekilde tasarlanmıştır. Geri bildirim, tasarımcı, ilerleme çubuğu, animasyon ve istemci için bölgelere ayrılır.

Geri bildirim bölgesi ve tasarımcı bölgesi her zaman görünür durumdadır. İlerleme çubuğu ve animasyon bölgeleri her zaman dinamik ve kullanıcı bağlamını temel alır. Tasarımcı bölgesi, metin iletisi için eşlik eden bir kaynaktan çekilen dizenin uzunluğuna göre belirlenen statik bir genişliğe sahiptir. Bu, yerelleştirmenin kod değişikliğine gerek kalmadan genişliği yeniden boyutlandırmasına olanak tanır. İngilizce için bu dizenin genişliği yaklaşık 220 pikseldir. Tasarımcı bölgesi normal şekilde davranır ve geri bildirim bölgesi kalan alanı emer.

Durum çubuğu, IDE'nin hata ayıklama modunda olması gibi çeşitli IDE durum değişiklikleriyle iletişim kurarak görsel ilgi alanı ve işlevsel değer eklemek için de renklendirilir.

IDE status bar color changes

IDE durum çubuğu renkleri

Eklenmiş bilgi çubuğu

Bilgi çubuğu, kullanıcıyı durum veya koşul hakkında bilgilendirmek için belge penceresinin veya araç penceresinin en üstünde kullanılabilir. Ayrıca, kullanıcının kolayca işlem gerçekleştirmesi için bir yönteme sahip olabilmesi için komutlar da sunabilir. Bilgi Çubuğu standart bir kabuk denetimidir. Kendi IDE'nizi oluşturmaktan kaçının. Bu, IDE'deki diğer kullanıcılarla tutarsız hareket eder ve tutarsız görünür. Uygulama ayrıntıları ve kullanım kılavuzu için bkz . Bilgi Çubukları .

Embedded infobar

Belge penceresine eklenmiş bir bilgi çubuğu, kullanıcıyı IDE'nin geçmiş hata ayıklama modunda olduğu ve düzenleyicinin standart hata ayıklama modunda olduğu gibi yanıt vermeyeceği konusunda uyarır.

Fare imleci değişiklikleri

Fare imlecini değiştirirken VSColor hizmetine bağlı olan ve imleçle zaten ilişkilendirilmiş renkleri kullanın. İmleç değişiklikleri, devam eden bir işlemi göstermek için ve kullanıcının sürüklenebilen, bırakılabilir veya nesne seçmek için kullanılan bir hedefin üzerine geldiği isabet bölgelerini göstermek için kullanılabilir.

Meşgul/bekleme faresi imlecini yalnızca tüm kullanılabilir CPU süresinin bir işlem için ayrılması gerektiğinde kullanın ve kullanıcının daha fazla giriş belirtmesini engelleyin. Çok iş parçacığı kullanan iyi yazılmış uygulamalarda çoğu durumda, kullanıcıların başka işlemler yapmasının engellendiği zamanlar nadir olmalıdır.

İmleç değişikliklerinin, başka bir yerde sunulan bilgiler için yedekli bir ipucu olarak yararlı olduğunu unutmayın. Özellikle kullanıcının ele alması gereken kritik bir şeyi iletmeye çalışırken kullanıcıyla iletişim kurmanın tek yolu olarak bir imleç değişikliğine güvenmeyin.

İlerleme göstergeleri

İlerleme göstergeleri, tamamlanması birkaç saniyeden uzun sürecek işlemler sırasında kullanıcıya geri bildirimde bulunmak için önemlidir. İlerleme göstergeleri yerinde (devam eden eylemin başlatma noktasına yakın), eklenmiş bir durum çubuğunda, kalıcı bir iletişim kutusunda veya Visual Studio durum çubuğunda gösterilebilir. Kullanımları ve uygulamalarıyla ilgili devam eden göstergeler konusundaki yönergeleri izleyin.

Visual Studio Bildirimleri penceresi

Visual Studio Bildirimleri penceresi, geliştiricilere lisanslama, ortam (Visual Studio), uzantılar ve güncelleştirmeler hakkında bilgi sağlar. Kullanıcılar tek tek bildirimleri kapatabilir veya belirli bildirim türlerini yoksaymayı seçebilir. Yoksayılan bildirimlerin listesi Bir Araç > Seçenekleri sayfasında yönetilir.

Bildirimler penceresi şu anda genişletilebilir değil.

Visual Studio Notifications window

Visual Studio Bildirimleri araç penceresi

Hata listesi

Hata listesindeki bir bildirim, derleme ve derleme işlemi sırasında oluşan hataları ve uyarıları gösterir ve kullanıcının kodda bu özel kod hatasına gitmesine izin verir.

Error list

Visual Studio'da hata listesi

Ekli durum çubukları

IDE durum çubuğu dinamik olduğundan, istemci bölgesi bağlamı etkin belge penceresine ayarlandığından ve kullanıcının bağlamı ve/veya sistem yanıtlarında güncelleştirilen bilgilerle, bilgilerin sürekli görüntülenmesini sağlamak veya uzun vadeli zaman uyumsuz işlemlerde durum vermek zordur. Örneğin, IDE durum çubuğu birden çok çalıştırma ve/veya hemen eyleme dönüştürülebilir öğe seçimleri için test çalıştırması sonuçlarının bildirimleri için uygun değildir. Bu tür durum bilgilerinin, kullanıcının seçim yaptığı veya bir işlem başlattığı belge veya araç penceresi bağlamında saklanması önemlidir.

Embedded status bar

Visual Studio'da katıştırılmış durum çubuğu

Windows tepsisi bildirimleri

Windows bildirim alanı, Windows görev çubuğunda sistem saatinin yanındadır. Birçok yardımcı program ve yazılım bileşeni, kullanıcının ekran çözünürlüğünü değiştirme veya yazılım güncelleştirmelerini alma gibi sistem genelindeki görevler için bir bağlam menüsü elde edebilmesi için bu alanda simgeler sağlar.

Ortam düzeyi bildirimlerin Windows bildirim alanında değil Visual Studio Notifications hub'ında ortaya çıkarılması gerekir.

Bildirim balonları

Bildirim kabarcıkları bir düzenleyici/tasarımcı içinde veya Windows Bildirim alanının bir parçası olarak bilgi olarak görünebilir. Kullanıcı bu kabarcıkları daha sonra çözebileceği sorunlar olarak algılar ve bu, kritik olmayan bildirimler için bir avantajdır. Baloncuklar, kullanıcının hemen çözmesi gereken kritik bilgiler için uygun değildir. Visual Studio'da bildirim baloncukları kullanıyorsanız bildirim baloncukları için Windows Masaüstü kılavuzunu izleyin.

Notification bubble

Visual Studio için kullanılan Windows Bildirim alanında bildirim balonu

İlerleme göstergeleri

İlerleme göstergeleri, kullanıcıya geri bildirimde bulunmak için bildirim sisteminin önemli bir parçasıdır. İşlemlerin ve işlemlerin ne zaman tamamlanacağı kullanıcıya bildirir. Bilinen gösterge türleri arasında ilerleme çubukları, dönen imleçler ve animasyonlu simgeler bulunur. İlerleme göstergesinin türü ve yerleşimi, bildirilenler ve işlemin veya işlemin tamamlanmasının ne kadar süreceği dahil olmak üzere bağlama bağlıdır.

Faktörler

Hangi gösterge türünün uygun olduğunu belirlemek için aşağıdaki faktörleri belirlemeniz gerekir.

  1. Zamanlama: İşlemin süresi

  2. Kalıcılık: İşlemin ortama kalıcı olup olmadığı (işlem tamamlanana kadar kullanıcı arabirimini kilitler)

  3. Kalıcı/Geçici: İlerlemenin nihai sonucunun daha sonra bildirilmesi ve/veya görüntülenebilmesi gerekip gerekmediği

  4. Determinate/Indeterminate: İşlem bitiş zamanının ve ilerleme durumunun hesaplanıp hesaplanamayacağı

  5. Grafik/Metin konumu: İlerleme veya işlemin satır içinde, ileti gövdesinde veya Ağaç denetimi gibi belirli bir denetimde yakalanıp yakalanmadığı

  6. Yakınlık: İlerleme durumunun ilgili olduğu kullanıcı arabirimine yakın olması gerekip gerekmediği. (Örneğin, uzak olabilecek durum çubuğunda olabilir veya işlemi başlatan düğmenin yakınında olması gerekir mi?)

İlerlemeyi belirleme

İlerleme türü Ne zaman ve nasıl kullanılır? Notlar
İlerleme çubuğu (determinate) Beklenen süre >5 saniyedir.

İşlem ayrıntılarının metinsel açıklamasını içerebilir.
Animasyona metin eklemeyin.
Bilgi Çubuğu Bağlamsal kullanıcı arabirimiyle ilişkili mesajlaşma. Bkz. Bilgi Çubukları.

İşlem ayrıntılarının metinsel açıklamasını içerebilir.
Birden çok işlemi belirtmeniz gerektiğinde birden çok bilgi çubuğu kullanmayın. Bunun yerine yığılmış ilerleme çubuklarını kullanın.
Çıktı Penceresi Geçici bildirim: Kullanıcının tamamlandıktan sonra ayrıntılarını gözden geçirmek istediği uygulama düzeyi işlem. Kullanıcının daha sonra verilere başvurması gerekip gerekmediğini kullanmayın .
Günlük dosyası İşlem tamamlandıktan sonra ayrıntıların kaydedilmesinin önemli olduğu durumlarda geçici bildirimle eşleştirilir.
Durum çubuğu Geçici bildirim: Kullanıcının tamamlandıktan sonra ayrıntılarına ihtiyaç duymadığı uygulama düzeyinde işlem.

Eklenmiş bir ilerleme çubuğu içerir.

İşlem ayrıntılarının metinsel açıklamasını içerebilir.

Belirsiz ilerleme durumu

İlerleme türü Ne zaman ve nasıl kullanılır? Notlar
İlerleme çubuğu (belirsiz) Beklenen süre >5 saniyedir.

İşlem ayrıntılarının metinsel açıklamasını içerebilir.
Animasyona metin eklemeyin.
Karıncalar (animasyonlu yatay noktalar) Sunucuya gidiş dönüş.

Üst kapsayıcının üst kısmında bağlamın yakın noktasına yerleştirilir.
Kapsayıcının tamamı tarafından üst öğeli değilse KULLANMAYIN.
Spinner (ilerleme halkası) Bağlamsal kullanıcı arabirimiyle ilişkili işlem veya alanın göz önünde bulundurulacağı yer.

İşlem ayrıntılarının metinsel açıklamasını içerebilir.
Bilgi Çubuğu Bağlamsal kullanıcı arabirimiyle ilişkili mesajlaşma. Bkz. Bilgi Çubukları. Birden çok işlemi belirtmeniz gerektiğinde birden çok bilgi çubuğu kullanmayın. Bunun yerine yığılmış ilerleme çubuklarını kullanın.
Çıktı Penceresi Geçici bildirim: Kullanıcının tamamlandıktan sonra ayrıntılarını gözden geçirmek isteyeceği uygulama düzeyi işlem. Oturumlar arasında kalıcı olması gereken bilgiler için kullanmayın.
Günlük dosyası İşlem tamamlandıktan sonra ayrıntıların kaydedilmesinin önemli olduğu durumlarda geçici bildirimle eşleştirilir.
Durum çubuğu Geçici bildirim: Kullanıcının tamamlandıktan sonra ayrıntılarına ihtiyaç duymadığı uygulama düzeyinde işlem.

Eklenmiş ilerleme çubuğu içerir.

İşlem ayrıntılarının metinsel açıklamasını içerebilir.

İlerleme göstergesi türleri

İlerleme çubukları

Belirsiz

Indeterminate progress bar

Belirsiz ilerleme çubuğu

"Belirsiz", bir işlemin veya işlemin genel ilerleme durumunun belirlenemediği anlamına gelir. Sınırsız süre gerektiren veya bilinmeyen sayıda nesneye erişen işlemler için belirsiz ilerleme çubukları kullanın. Olup bitenlere eşlik etmek için metinsel bir açıklama kullanın. Zaman tabanlı işlemlere sınır vermek için zaman aşımlarını kullanın. Belirsiz ilerleme çubukları, ilerlemenin kaydedildiğini göstermek için animasyonları kullanır, ancak başka bilgi sağlamaz. Yalnızca olası doğruluk eksikliğine bağlı olarak belirsiz bir ilerleme çubuğu seçmeyin.

Belirli

Determinate progress bar

İlerleme çubuğunu belirleme

"Determinate", bir işlemin veya işlemin doğru tahmin edilemese bile sınırlanmış bir süre gerektirdiği anlamına gelir. İşlemin tamamlanmasını açıkça belirtin. İşlem tamamlanmadığı sürece ilerleme çubuğunun yüzde 100'e gitmesine izin vermeyin. İlerleme çubuğunu belirleme animasyonu soldan sağa 0'dan %100'e taşınır.

İşlem sırasında ilerleme göstergesini hiçbir zaman geri taşımayın. Çubuk, işlem başladığında kararlı bir şekilde ilerlemeli ve sona erdiğinde %100'e ulaşmalıdır. İlerleme çubuğunun amacı, kaç adımın söz konusu olduğuna bakılmaksızın kullanıcıya tüm işlemin ne kadar sürdüğü hakkında bir fikir vermektir.

Eşzamanlı raporlama (yığılmış ilerleme çubukları)

Bir işlem uzun zaman alacaksa (belki birkaç dakika) biri bir işlemin genel ilerleme durumunu, diğeri ise geçerli adımın ilerleme durumunu gösteren iki ilerleme çubuğu kullanılabilir. Örneğin, bir kurulum programı çok sayıda dosya kopyalanıyorsa, bir ilerleme çubuğu tüm işlemin ne kadar sürdüğünü, bir saniye ise geçerli dosyanın veya dizinin hangi yüzdesinin kopyalandığını göstermek için kullanılabilir. Yığılmış ilerleme çubuklarını kullanarak beşten fazla eşzamanlı işlemi veya işlemi raporlamayın. Bildirecek beşten fazla eşzamanlı işleminiz veya işleminiz varsa İptal düğmesini içeren kalıcı bir iletişim kutusu kullanın ve ilerleme ayrıntılarını Çıkış Penceresi'ne bildirin.

Metinsel açıklamalar

Olup bitenlere ve tahmini tamamlanma süresine eşlik etmek için metinsel bir açıklama kullanın. Bir işlemin ne kadar süreceğini belirlemek mümkün değilse geri bildirimde bulunmak için ilerleme çubuğu yerine animasyonlu bir simge daha iyi bir seçim olabilir.

Visual Studio, durum çubuğunda Visual Studio ile tümleştirilmiş herhangi bir ürün tarafından kullanılabilecek standart bir ilerleme çubuğu sağlar. İlerleme çubuğu animasyonluyken neler olduğuna ilişkin metinsel açıklamalar için durum çubuğu metni güncelleştirilebilir.

Diğer ilerleme göstergeleri

Karıncalar (animasyonlu yatay noktalar)

Progress ants

"Karıncalar", animasyonlu yatay noktalar, belirsiz bir gidiş dönüş sunucu işlemi için görsel bir başvuru sağlar.

Spinner (ilerleme halkası)

Progress spinner

Döndürücü ("ilerleme halkası" olarak da bilinir), bağlamsal kullanıcı arabirimiyle ilgili olarak öncelikli olarak kullanılan belirsiz bir ilerleme göstergesidir. Bir değiştiriciyi metin kategorisi üst bilgisi, mesajlaşma veya denetim gibi ilgili içeriğine yakın bir şekilde görüntüleyin.

İmleç geri bildirimi

2-7 saniye arasında süren işlemler için imleç geri bildirimi sağlayın. Bu genellikle işletim sistemi tarafından sağlanan bekleme imlecini kullanmak anlamına gelir. Yönergeler için Cursors.Wait Özelliği ADLı MSDN makalesine bakın.

İlerleme göstergesi konumları

Durum çubuğu

Durum çubuğu, uygulamanızın çalışmasını kesintiye uğratmadan kullanıcıya iletileri ve yararlı bilgileri görüntüleyecek bir yer sağlar. Genellikle pencerenin en altında görüntülenen ilerleme durumu, ilerleme durumu çubuğu göstergesiyle birlikte ilerleme durumuyla ilgili bir ileti içeren bir araç ipucu bölmesi olacaktır.

Status bar with progress bar

İlerleme çubuğu içeren durum çubuğu

Status bar with messaging

Metin açıklaması içeren durum çubuğu

Bilgi Çubuğu

Durum çubuğuna benzer şekilde, bilgi çubuğu bağlamsal bildirim ve mesajlaşma sağlar. Bu bildirim, ilerleme çubuğu veya değiştirici gibi belirsiz ilerleme göstergeleriyle de eşleştirilebilir. Bilgi çubuğu ayrıntılı düzey ilerleme durumu veya belirlenebilir ilerleme göstergesi sağlamamalıdır. Bkz. Bilgi Çubukları.

Infobar with progress bar and messaging

İlerleme çubuğu ve metin açıklaması içeren bilgi çubuğu

Infobar inside a window

Satır içi

Satır içi ilerleme durumu göstergesi, ilerleme yükleyicisi türlerinden herhangi biri tarafından temsil edilebilir. genellikle ilerleme göstergesi mesajlaşma ile eşleştirilir, ancak bu bir gereksinim değildir.

Inline progress spinner

Metinsel açıklama ile birleştirilmiş değiştirici

Inline stacked progress bars

Yığılmış ilerleme çubuklarını belirleme

Inline progress messaging

Sunucu Gezgini satır içi metni: Yenileniyor...

Araç pencereleri

Genel ilerleme göstergesi, araç çubuğunun hemen altına yerleştirilmiş belirsiz bir ilerleme çubuğuyla temsil edilir.

Global indeterminate progress bar

Ekip Gezgini genel belirsiz ilerleme çubuğu

İletişim Kutuları

İletişim kutuları ilerleme yükleyicisi türlerinden herhangi birini içerebilir. İlerleme göstergeleri mesajlaşma ile eşleştirilebilir ve ayrıntılı ve alt süreçleri temsil eden birden çok ilerleme göstergesi düzeyiyle birleştirilebilir.

Dialog with multiple progress indicator types

Eşzamanlı işlemler ve birden çok ilerleme göstergesi türü içeren Visual Studio iletişim kutusu

Dialog with progress loader and messaging

İlerleme yükleyicisi ve ileti satır içi komutu içeren Visual Studio iletişim kutusu

Belge iyi

Belge kutusu, denetimlerle birlikte birden çok ilerleme yükleyicisi türünü görüntüleyebilir.

Progress messaging in document well

Araç çubuğunun altındaki belirsiz ilerleme çubuğu

Çıktı Penceresi

Çıkış penceresi, satır içi metin iletisi aracılığıyla işlem ilerlemesini ve devam eden ilerleme durumunu işlemek için uygundur. Herhangi bir Çıkış penceresi ilerleme durumu raporlaması ile birlikte Durum çubuğunu kullanmanız gerekir.

Progress messaging in Output Window

Devam eden işlem durumu ve bekleme mesajlaşması ile Çıkış Penceresi

Bilgi Çubukları

Bilgi çubukları kullanıcıya dikkat noktasına yakın bir gösterge sağlar ve paylaşılan bilgi çubuğu denetimini kullanmak, görsel görünümde ve etkileşimde tutarlılık sağlar.

Infobar

Visual Studio'daki Bilgi Çubukları

Bilgi çubuğu için uygun kullanımlar

  • Kullanıcıya geçerli bağlamla ilgili engelleyici olmayan ancak önemli bir ileti vermek için

  • Kullanıcı arabiriminin, geçmiş hata ayıklama gibi bazı etkileşim etkilerini taşıyan belirli bir durumda veya koşulda olduğunu belirtmek için

  • Kullanıcıya, bir uzantının performans sorunlarına neden olması gibi sorunlar algılandığını bildirmek için

  • Kullanıcıya, düzenleyicinin bir dosyanın sekmeler ve boşluklar karıştırdığını algılaması gibi kolayca işlem gerçekleştirmesi için bir yol sağlamak için

Yapın:
  • Bilgi çubuğu ileti metnini kısa ve noktaya kadar tutun.

  • Bağlantıların ve düğmelerin üzerindeki metni kısa tutun.

  • Kullanıcılara sağladığınız "eylem" seçeneklerinin çok az olduğundan ve yalnızca gerekli eylemleri gösterdiğinden emin olun.

Yapma:
  • Araç çubuğuna yerleştirilmesi gereken standart komutlar sunmak için bilgi çubuğunu kullanın.

  • Kalıcı iletişim kutusu yerine bilgi çubuğu kullanın.

  • Pencerenin dışında kayan ileti oluşturma.

  • Aynı pencere içindeki çeşitli konumlarda birden çok bilgi çubuğu kullanın.

Aynı anda birden çok bilgi çubuğu gösterilebilir mi?

Evet, aynı anda birden çok bilgi çubuğu gösterilebilir. Bunlar ilk gelen ilk servis siparişte, ilk bilgi çubuğu üstte ve ek bilgi çubukları aşağıda gösterilen şekilde görüntülenir.

Kullanıcı aynı anda en fazla üç bilgi çubuğu görür ve bundan sonra daha fazla bilgi çubuğu varsa, bilgi çubuğu bölgesi kaydırılabilir hale gelir.

Bilgi çubuğu oluşturma

Bilgi çubuğunda soldan sağa dört bölüm vardır:

  • Simge: Burası, bilgi çubuğu için görüntülemek istediğiniz herhangi bir simgeyi (uyarı simgesi gibi) eklediğiniz yerdir.

  • Metin: Kullanıcının içinde bulunduğu senaryoyu/durumu ve gerekirse metin içindeki bağlantıları açıklamak için metin ekleyebilirsiniz. Metni kısa tutmayı unutmayın.

  • Eylemler: Bu bölüm, kullanıcının bilgi çubuğunuzda gerçekleştirebileceği eylemlere yönelik bağlantılar ve düğmeler içermelidir.

  • Kapat düğmesi: Sağdaki son bölümde kapat düğmesi olabilir.

Yönetilen kodda standart bilgi çubuğu oluşturma

InfoBarModel sınıfı, bir bilgi çubuğu için veri kaynağı oluşturmak için kullanılabilir. Şu dört oluşturucudan birini kullanın:

public InfoBarModel(IEnumerable<IVsInfoBarTextSpan> textSpans, ImageMoniker image = default(ImageMoniker), bool isCloseButtonVisible = true);

public InfoBarModel(string text, ImageMoniker image = default(ImageMoniker), bool isCloseButtonVisible = true);

public InfoBarModel(IEnumerable<IVsInfoBarTextSpan> textSpans, IEnumerable<IVsInfoBarActionItem> actionItems, ImageMoniker image = default(ImageMoniker), bool isCloseButtonVisible = true);

public InfoBarModel(string text, IEnumerable<IVsInfoBarActionItem> actionItems, ImageMoniker image = default(ImageMoniker), bool isCloseButtonVisible = true);

Burada köprü, eylem düğmesi ve simge içeren bir metin içeren infobarmodeli oluşturan bir örnek verilmiştir.

Infobar with hyperlink

var infoBar = new InfoBarModel(
    textSpans: new[]
    {
        new InfoBarTextSpan("This is a "),
        new InfoBarHyperlink("hyperlink"),
        new InfoBarTextSpan(" InfoBar.")
    },
    actionItems: new[]
    {
        new InfoBarButton("Click Me")
    },
    image: KnownMonikers.StatusInformation,
    isCloseButtonVisible: true);

Yerel kodda standart bilgi çubuğu oluşturma

Yerel koddan bilgi çubuğu sağlamak için IVsInfoBar arabirimini uygulayın.

public interface IVsInfoBar
{
    IVsInfoBarActionItemCollection ActionItems { get; }
    ImageMoniker Image { get; }
    bool IsCloseButtonVisible { get; }
    IVsInfoBarTextSpanCollection TextSpans { get; }
}

Bilgi çubuğundan bilgi çubuğu UIElement alma

InfoBarModel veya IVsInfoBar uygulaması, kullanıcı arabiriminde gösterilmesi için UIElement'e dönüştürülmesi gereken veri modelleridir. UIElement, SVsInfoBarUIFactory/IVsInfoBarUIFactory hizmetiyle alınabilir.

private bool TryCreateInfoBarUI(IVsInfoBar infoBar, out IVsInfoBarUIElement uiElement)
{
    IVsInfoBarUIFactory infoBarUIFactory = serviceProvider.GetService(typeof(SVsInfoBarUIFactory)) as IVsInfoBarUIFactory;
    if (infoBarUIFactory == null)
    {
        uiElement = null;
        return false;
    }

    uiElement = infoBarUIFactory.CreateInfoBar(infoBar);
    return uiElement != null;
}

Yerleştirme

Bilgi çubukları aşağıdaki konumlardan birinde veya daha fazlasında gösterilebilir:

  • Araç pencereleri

  • Belge sekmesinde

Önemli

Genel bağlam hakkında bir ileti vermek için bir bilgi çubuğu konumlandırmak mümkündür. Bu, araç çubuklarıyla belge kutusu arasında görünür. Bu, IDE'nin "atlama ve sarsıntı" ile ilgili sorunlara neden olduğu ve kesinlikle gerekli ve uygun olmadığı sürece kaçınılması gerektiği için önerilmez.

ToolWindowPane'a bilgi çubuğu yerleştirme

ToolWindowPane.AddInfoBar(IVsInfoBar) yöntemi, araç penceresine bilgi çubuğu eklemek için kullanılabilir. Bu API bir IVsInfoBar (InfoBarModel'in varsayılan bir uygulama olduğu) veya IVsUIElement ekleyebilir.

Belgeye veya ToolWindowPane olmayan bir belgeye bilgi çubuğu yerleştirme

Herhangi bir IVsWindowFrame'e bilgi çubuğu yerleştirmek için VSFPROPID_InfoBarHost özelliğini kullanarak çerçevenin IVsInfoBarHost değerini alın ve ardından bilgi çubuğu UIElement öğesini ekleyin.

private void AddInfoBar(IVsWindowFrame frame, IVsUIElement uiElement)
{
    IVsInfoBarHost infoBarHost;
    if (TryGetInfoBarHost(frame, out infoBarHost))
    {
        infoBarHost.AddInfoBar(uiElement);
    }
}
private bool TryGetInfoBarHost(IVsWindowFrame frame, out IVsInfoBarHost infoBarHost)
{
    object infoBarHostObj;
    if (ErrorHandler.Failed(frame.GetProperty((int)__VSFPROPID7.VSFPROPID_InfoBarHost, out infoBarHostObj)))
    {
        infoBarHost = null;
        return false;
    }

    infoBarHost = infoBarHostObj as IVsInfoBarHost;
    return infoBarHost != null;
}

Ana pencereye bilgi çubuğu yerleştirme

Ana pencereye bir bilgi çubuğu yerleştirmek için IVsShell hizmetinin VSSPROPID_MainWindowInfoBarHost kullanarak ana pencerenin IVsInfoBarHost dosyasını alın ve ardından buna bilgi çubuğu UIElement öğesini ekleyin.

Kullanıcının bilgi çubuğumda ne zaman işlem yapacağı hakkında bilgi edinecek miyim?

Evet, her olay eylemini bilgi çubuğu yazarına döndüreceğiz. Daha sonra bilgi çubuğundaki kullanıcı seçimine göre IDE'de işlem yapmak bilgi çubuğu yazarına bağlıdır. Kapat düğmesine tıklanan ana bilgisayardan bilgi çubukları otomatik olarak kaldırılır, ancak kapatıldıktan sonra diğer bilgi çubuklarının kaldırılması gerekiyorsa ek çalışma gerekir. Telemetrinin de her bilgi çubuğu tarafından bağımsız olarak günlüğe kaydedilmesi gerekir.

ToolWindowPane'da bilgi çubuğu olaylarını alma

ToolWindowPane'da bilgi çubukları için iki olay vardır. ToolWindowPane içindeki bir bilgi çubuğu kapatıldığında InfoBarClosed olayı oluşturulur. InfoBarActionItemClicked olayı, bilgi çubuğunun içindeki bir köprüye veya düğmeye tıklandığında oluşturulur.

Bilgi çubuğu olaylarını doğrudan UIElement'ten alma

IVsInfoBarUIElement.Advise, doğrudan bir bilgi çubuğunun UIElement öğesinden olaylara abone olmak için kullanılabilir. IVsInfoBarUIEvents'in uygulanması yazarın yakın ve tıklama olaylarını almasına olanak sağlar.

public interface IVsInfoBarUIEvents
{
    void OnActionItemClicked(IVsInfoBarUIElement infoBarUIElement, IVsInfoBarActionItem actionItem);
    void OnClosed(IVsInfoBarUIElement infoBarUIElement);
}

Hata doğrulama

Kullanıcı, gerekli bir alanın atlanması veya verilerin yanlış biçimde girilmiş olması gibi kabul edilebilir olmayan bilgiler girdiğinde, engelleyici bir açılır hata iletişim kutusu kullanmak yerine denetimin yakınında denetim doğrulama veya geri bildirim kullanmak daha iyidir.

Alan doğrulama

Form ve alan doğrulaması üç bileşenden oluşur: denetim, simge ve araç ipucu. Çeşitli denetim türleri bunu kullanabilir ancak örnek olarak bir metin kutusu kullanılır.

Field validation (blank)

Alan gerekiyorsa Gerekli ve <>alan arka planının açık sarı (VSColor: Environment.ControlEditRequiredBackground) ve ön plan gri (VSColor: ): Environment.ControlEditRequiredHintText

Field validation with

Program denetimin, odak başka bir denetime taşındığında veya kullanıcı bir [Tamam] işleme düğmesine tıkladığında ya da kullanıcı belgeyi veya formu kaydettiğinde girilen geçersiz içerik durumunda olduğunu belirleyebilir.

Geçersiz içerik durumu belirlendiğinde, denetimin içinde veya hemen yanında bir simge görünür. Simgenin veya denetimin üzerine gelindiğinde hatayı açıklayan bir araç ipucu görünmelidir. Ayrıca, geçersiz durumu oluşturan denetimin çevresinde 1 piksellik bir kenarlık görünmelidir.

Field validation layout specifications

Alan doğrulaması için düzen belirtimleri

Simge konumu için kabul edilebilir varyasyonlar

Kullanıcıların doğrulama hataları hakkında bilgilendirilmesi gereken sayısız benzersiz durum vardır. Kullanıcı arabiriminin denetim türünü ve yapılandırmasını göz önünde bulundurarak, durumunuz için uygun simge yerleşimini seçin.

Acceptable locations for icon location

Alan doğrulama simgesi konumları için kabul edilebilir varyasyonlar

Sunucuya veya ağ bağlantısına gidiş dönüş gerektiren doğrulama

Bazı durumlarda, içeriği doğrulamak için sunucuya gidiş dönüş gerekir ve kullanıcı ilerleme durumunu, doğrulanmış ve hata durumlarını göstermek önemlidir. Aşağıdaki şekilde bu durumun bir örneği ve önerilen kullanıcı arabirimi gösterilmektedir.

Validation involving a round trip to a server

Sunucuya gidiş dönüş içeren doğrulama

"Doğrulanıyor..." ve "Yeniden Dene" metni.

Yerinde uyarı metni

Hata iletisini denetime yakın bir hata durumuna yerleştirmek için kullanılabilir bir alan olduğunda, bu yalnızca araç ipucunun kullanılması tercih edilir.

In-place warning

Yerinde uyarı metni

Filigran

Bazen bir denetimin veya pencerenin tamamı hata durumundadır. Bu durumda, hatayı belirtmek için bir filigran kullanın.

Watermark

Filigran alanı doğrulaması