Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Pencere etkileşimleri
Visual Studio'da kullanılan iki ana pencere türü belge düzenleyicileri ve araç pencereleridir. Nadir, ancak mümkündür, büyük modsuz iletişim kutularıdır. Bunların tümü kabukta modeless olsa da, desenleri temelde farklıdır. Bu bölüm belge pencereleri, araç pencereleri ve modsuz iletişim kutuları arasındaki farkı kapsar. Kalıcı iletişim kutusu desenleri İletişim Kutuları'nda ele alınmıştır.
Pencere kullanım desenlerini karşılaştırma
Belge pencereleri neredeyse her zaman belge kutusu içinde görüntülenir. Bu, belge düzenleyicisine ek araç pencerelerini düzenlemek için bir "orta aşama" sağlar.
Araç penceresi genellikle IDE'nin kenarına daraltılmış ayrı, daha küçük bir pencere olarak görüntülenir. Bu görünür, gizli veya otomatik olarak gizlenebilir. Ancak bazen araç pencereleri, penceredeki Window/Docking özelliğinin işareti kaldırılarak belgenin içinde sunulur. Bu, daha fazla gayrimenkule, ancak aynı zamanda yaygın bir tasarım kararına neden olur: Visual Studio ile tümleştirmeye çalışırken, özelliğinizin bir araç penceresi mi yoksa belge penceresi mi görüntüleyeceğine karar vermeniz gerekir.
Visual Studio'da modsuz iletişim kutuları önerilmez. Çoğu modsuz iletişim kutusu, tanımı gereği kayan araç pencereleridir ve bu şekilde uygulanmalıdır. Kabuğun yanına yerleştirilmiş normal bir araç penceresinin boyutunun çok sınırlayıcı olacağı durumlarda, modsuz iletişim kutularına izin verilir. Ayrıca, kullanıcının iletişim kutusunu ikincil bir monitöre taşıma olasılığı yüksek olduğu durumlarda da bunlara izin verilir.
Hangi kapsayıcı türüne ihtiyacınız olduğunu dikkatlice düşünün. Kullanıcı arabirimi tasarımıyla ilgili yaygın kullanım deseni konuları aşağıdaki tabloda yer alır.
Belge penceresi | Araç penceresi | Modeless dialog | |
---|---|---|---|
Bölme | Her zaman belgenin içinde yer alır ve IDE'nin kenarlarına yerleştirmez. Ana kabuktan ayrı olarak kayan şekilde "çekilebilir". | Genellikle IDE'nin kenarlarına sekmeyle yerleştirilmiştir, ancak kayan, otomatik olarak gizlenecek (sabitlenmemiş) veya belge kutusuna yerleştirilecek şekilde özelleştirilebilir. | IDE'den ayrı büyük kayan pencere. |
İşleme modeli | Gecikmeli işleme Verileri bir belgeye kaydetmek için kullanıcının Dosya Kaydet, Farklı Kaydet veya Tümünü Kaydet komutunu vermesi gerekir. > Belge penceresinde içindeki verilerin "kirli" olduğu ve ardından kaydetme komutlarından birine işlendiği kavramı vardır. Belge penceresi kapatılırken, tüm içerik diske kaydedilir veya kaybolur. |
Anında işleme Kaydetme modeli yoktur. Dosyayı düzenlemeye yardımcı olan denetçi araç pencereleri için, dosyanın etkin düzenleyicide veya tasarımcıda açık olması ve kaydetmenin sahibi düzenleyici veya tasarımcı olmalıdır. |
Gecikmeli veya anında işleme Çoğu zaman, büyük bir modsuz iletişim kutusu değişiklikleri işlemek için bir eylem gerektirir ve iletişim kutusu oturumunda yapılan değişiklikleri geri alan bir "İptal" işlemine izin verir. Bu, modsuz bir iletişim kutusunu bu araç pencerelerindeki bir araç penceresinden ayırt eder ve her zaman anında işleme modeline sahiptir. |
Görünürlük | Aç/Oluştur (dosya) ve Kapat Belge pencerelerini açmak, var olan bir belgeyi açmak veya yeni belge oluşturmak için şablon kullanmak yoluyla yapılır. "Belirli bir düzenleyiciyi> aç<" komutu yoktur. |
Gizleme ve gösterme Tek örnekli araç pencereleri gizlenebilir veya gösterilebilir. Araç penceresindeki içerik ve durumlar, görünümde veya gizli durumda kalır. Çok örnekli araç pencereleri hem kapatılabilir hem de gizlenebilir. Çok örnekli bir araç penceresi kapatıldığında, araç penceresindeki içerik ve durum atılır. |
Bir komuttan başlatıldı İletişim kutuları, görev tabanlı bir komuttan başlatılır. |
Örnekler | Multi Birkaç düzenleyici aynı anda açılabilir ve farklı dosyaları düzenleyebilirken, bazı düzenleyiciler aynı dosyanın birden fazla düzenleyicide açılmasına da izin verir (Yeni Pencere Penceresi > komutu kullanılarak). Tek bir düzenleyici aynı anda bir veya birden çok dosyayı düzenliyor olabilir (Project Tasarım Aracı). |
Tek veya çok örnekli İçerikler bağlamı yansıtacak şekilde (Özellik Tarayıcısı'nda olduğu gibi) veya odağı/bağlamı diğer pencerelere (Görev Listesi, Çözüm Gezgini) göndererek değişir. Gerek tek örnekli gerekse çok örnekli araç pencereleri, ilgi çekici bir neden olmadığı sürece etkin belge penceresiyle ilişkilendirilmelidir. |
Tek örnekli |
Örnekler | Kod düzenleyicisi gibi metin düzenleyicileri Form tasarımcısı veya modelleme yüzeyi gibi tasarım yüzeyleri Bildirim Tasarım Aracı gibi iletişim kutularına benzer denetim düzenleri |
Çözüm Gezgini, çözümün içinde yer alan bir çözüm ve projeler sağlar Sunucu Gezgini, kullanıcının pencerede açmayı seçtiği sunucuların ve veri bağlantılarının hiyerarşik bir görünümünü sağlar. Veritabanı hiyerarşisinden sorgu gibi bir nesne açıldığında bir belge penceresi açılır ve kullanıcının sorguyu düzenlemesine olanak tanır. Özellik Tarayıcısı, seçilen nesnenin özelliklerini belge penceresinde veya başka bir araç penceresinde görüntüler. Özellikler hiyerarşik kılavuz görünümünde veya karmaşık iletişim kutusu benzeri denetimlerde sunulur ve kullanıcının bu özellikler için değerleri ayarlamasına izin verir. |
Araç pencereleri
Araç pencereleri, belge pencerelerinde gerçekleşen kullanıcının çalışmasını destekler. Visual Studio'da sunulan ve işleyebilen temel bir kök nesneyi temsil eden bir hiyerarşi görüntülemek için kullanılabilirler.
IDE'de yeni bir araç penceresi göz önünde bulundurulduğunda yazarlar şunları yapmalıdır:
Göreve uygun mevcut araç pencerelerini kullanın ve benzer işlevlere sahip yenilerini oluşturmayın. Yeni araç pencereleri yalnızca benzer bir pencereyle tümleştirilmeyecek önemli ölçüde farklı bir "araç" veya işlev sunuyorsa ya da var olan bir pencereyi bir özet hub'a dönüştürerek oluşturulmalıdır.
Gerekirse araç penceresinin üst kısmında standart bir komut çubuğu kullanın.
Denetim sunusu ve klavye gezintisi için diğer araç pencerelerinde bulunan desenlerle tutarlı olun.
Diğer araç pencerelerindeki denetim sunusuyla tutarlı olun.
Mümkün olduğunda belgeye özgü araç pencerelerinin otomatik olarak görünür olmasını, böylece yalnızca üst belge etkinleştirildiğinde görünmesini sağlayın.
Pencere içeriğinin klavyeyle gezinilebilir olduğundan emin olun (destek ok tuşları).
Araç penceresi durumları
Visual Studio araç pencereleri, bazıları kullanıcı tarafından etkinleştirilen (otomatik gizleme özelliği gibi) farklı durumlara sahiptir. Otomatik görünür gibi diğer durumlar, araç pencerelerinin doğru bağlamda görünmesine ve gerekli olmadığında gizlenmelerine izin verir. Toplamda beş araç penceresi durumu vardır.
Yerleşik/sabitlenmiş araç pencereleri, belge alanının dört tarafından herhangi birine eklenebilir. Araç penceresi başlık çubuğunda rapt simgesi görünür. Araç penceresi, kabuğun ve diğer araç pencerelerinin kenarı boyunca yatay veya dikey olarak sabitlenebilir ve sekmeyle bağlanabilir.
Otomatik gizli araç pencereleri sabitlenmemiş. Pencere, belge alanının kenarında bir sekme bırakarak (araç penceresinin adı ve simgesiyle) gözden kayabilir. Kullanıcı sekmenin üzerine geldiğinde araç penceresi dışarı kayar.
Düzenleyici gibi başka bir kullanıcı arabirimi parçası başlatıldığında veya odak kazanıldığında otomatik olarak görünür araç pencereleri otomatik olarak görünür.
Kayan araç pencereleri IDE'nin dışına gelin. Bu, çok monitörlü yapılandırmalar için kullanışlıdır.
Sekmeli belge aracı pencereleri belge kutusuna yerleştirilebilir. Bu, Object Browser gibi çerçevenin kenarlarına yerleştirmeye izin verdiğinden daha fazla emlak gerektiren büyük araç pencereleri için kullanışlıdır.
Visual Studio'da araç penceresi durumları
Tek örnekli ve çok örnekli
Araç pencereleri tek örnekli veya çok örnekli pencerelerdir. Bazı tek örnekli araç pencereleri etkin belge penceresiyle ilişkilendirilebilirken, çok örnekli araç pencereleri ilişkilendirilmeyebilir. Çok örnekli araç pencereleri, pencerenin yeni bir örneğini oluşturarak Yeni Pencere Penceresi > komutuna yanıt verir. Aşağıdaki resimde, pencerenin bir örneği etkin olduğunda Yeni Pencere komutunu etkinleştiren bir araç penceresi gösterilmektedir:
Bir pencere örneği etkinken 'Yeni Pencere' komutunu etkinleştiren araç penceresi
Tek örnekli araç pencereleri gizlenebilir veya gösterilebilirken, çok örnekli araç pencereleri de kapatılabilir ve gizlenebilir. Tüm araç pencereleri yerleşik, sekme bağlantılı, kayan veya Birden Çok BelgeLi Arabirim (MDI) alt penceresi (belge penceresine benzer) olarak ayarlanabilir. Tüm araç pencereleri, Pencere menüsünde uygun pencere yönetimi komutlarına yanıt vermelidir:
Visual Studio Penceresi menüsündeki pencere yönetimi komutları
Belgeye özgü araç pencereleri
Bazı araç pencereleri, belirli bir belge türüne göre değişecek şekilde tasarlanmıştır. Bu pencereler, IDE'deki etkin belge penceresine uygulanabilir işlevselliği yansıtacak şekilde sürekli olarak güncelleştirilir.
İçeriği seçilen düzenleyiciyi yansıtacak şekilde değişen araç pencerelerine örnek olarak Araç Kutusu ve Belge Ana Hattı verilebilir. Bu pencereler, pencereye bağlam sunmayan bir düzenleyicinin odağı olduğunda filigran gösterir.
Gezinilebilir liste aracı pencereleri
Bazı araç pencereleri, kullanıcının etkileşim kurabileceği gezinilebilir öğelerin listesini görüntüler. Bu pencere türünde, pencere etkin olmasa bile listedeki geçerli öğe için her zaman geri bildirim olmalıdır. Liste, pencerede seçili durumdaki öğeyi de değiştirerek GoToNextLocation ve GoToPrevLocation komutlarına yanıt vermelidir
Gezinilebilir liste aracı pencerelerine örnek olarak Çözüm Gezgini ve Sonuçları Bul penceresi verilebilir.
Araç penceresi türleri
Ortak araç pencereleri ve işlevleri
Hiyerarşik araç pencereleri
Araç penceresi | İşlev |
---|---|
Çözüm Gezgini | Projelerde, çeşitli dosyalarda ve çözüm öğelerinde bulunan belgelerin listesini görüntüleyen hiyerarşik bir ağaç. Projelerin içindeki öğelerin görüntülenmesi, proje türünün sahibi olan paket tarafından tanımlanır (örneğin, başvuru tabanlı, dizin tabanlı veya karma mod türleri). |
Sınıf Görünümü | Dosyaların kendilerinden bağımsız olarak, çalışma belge kümesindeki sınıfların ve çeşitli öğelerin hiyerarşik ağacı. |
Sunucu Gezgini | Çözümdeki tüm sunucuları ve veri bağlantılarını görüntüleyen hiyerarşik bir ağaç. |
Belge Anahattı | Etkin belgenin hiyerarşik yapısı. |
Kılavuz aracı pencereleri
Araç penceresi | İşlev |
---|---|
Özellikler | Seçili nesnenin özelliklerinin listesini ve bu özellikleri düzenlemek için değer seçicileri görüntüleyen kılavuz. |
Görev Listesi | Kullanıcının görevleri ve açıklamaları oluşturmasına/düzenlemesine/silmesine olanak tanıyan bir kılavuz. |
İçerik aracı pencereleri
Araç penceresi | İşlev |
---|---|
Yardım | Kullanıcıların "Nasıl Yapabilirim?" videolarından MSDN forumlarına kadar çeşitli yardım alma yöntemlerine erişmesini sağlayan bir pencere. |
Dinamik Yardım | Geçerli seçim için geçerli yardım konularının bağlantılarını görüntüleyen bir araç penceresi. |
Nesne Tarayıcısı | Sol bölmede hiyerarşik nesne bileşenlerinin listesini ve sağ sütunda nesnenin özelliklerini ve yöntemlerini içeren iki sütunlu bir çerçeve kümesi. |
İletişim aracı pencereleri
Araç penceresi | İşlev |
---|---|
Bul | Kullanıcının çözüm içindeki çeşitli dosyaları bulmasına veya bulmasına ve değiştirmesine olanak tanıyan bir iletişim kutusu. |
Gelişmiş Bul | Kullanıcının çözüm içindeki çeşitli dosyaları bulmasına veya bulmasına ve değiştirmesine olanak tanıyan bir iletişim kutusu. |
Diğer araç pencereleri
Araç penceresi | İşlev |
---|---|
Araç kutusu | Tasarım yüzeylerine bırakılacak öğeleri depolamak için kullanılan araç penceresi, tüm tasarımcılar için tutarlı bir sürükleme kaynağı sağlar. |
Hata ayıklayıcısı araç pencereleri
Araç penceresi | İşlev |
---|---|
İfade ve Değişkenler | |
Anlık | |
Çıktı | Çıkış penceresi, bildirilecek metinsel olaylar veya durumunuz olduğunda kullanılabilir. |
Bellek | |
Kesme noktaları | |
Çalışıyor | |
Belgeler | |
Çağrı Yığını | |
Yerel Öğeler | |
Saatler | |
Demontaj | |
Kayıtlar | |
İş Parçacıkları |
Belge düzenleyicisi kuralları
Belge etkileşimleri
"Belge kutusu", IDE içindeki en büyük alandır ve kullanıcının ek araç pencerelerinin yardımıyla görevlerini tamamlamak için genel olarak dikkatini odakladığı yerdir. Belge düzenleyicileri, kullanıcının Visual Studio'da açtığı ve kaydettiği temel iş birimlerini temsil eder. Çözüm Gezgini veya diğer etkin hiyerarşi pencerelerine bağlı güçlü bir seçim duygusunu korurlar. Kullanıcı, bu hiyerarşi pencerelerinden birine işaret edebilmeli ve belgenin nerede yer aldığı ve çözüm, proje veya Visual Studio paketi tarafından sağlanan başka bir kök nesneyle ilişkisini bilmelidir.
Belge düzenleme tutarlı bir kullanıcı deneyimi gerektirir. Kullanıcının pencere yönetimi ve komutları bulmak yerine eldeki göreve odaklanmasına izin vermek için, bu belge türünü düzenlemek için kullanıcı görevlerine en uygun belge görünümü stratejisini seçin.
Belge kuyusunun ortak etkileşimleri
Ortak Yeni Dosya ve Dosya Aç deneyimlerinde tutarlı bir etkileşim modeli sağlayın.
Belge penceresi açıldığında ilgili pencerelerde ve menülerde ilgili işlevleri güncelleştirin.
Menü komutları Düzenleme, Biçim ve Görünüm menüleri gibi yaygın menülerle uygun şekilde tümleştirilir. Önemli miktarda özel komut varsa yeni bir menü oluşturulabilir. Bu yeni menü yalnızca belgede odak olduğunda görünür olmalıdır.
Ekli araç çubuğu düzenleyicinin en üstüne yerleştirilebilir. Bu, düzenleyicinin dışında görünen ayrı bir araç çubuğuna sahip olmak için tercih edilir.
Her zaman Çözüm Gezgini veya benzer etkin hiyerarşi penceresinde bir seçim yapın.
Çözüm Gezgini bir belgeye çift tıklanması, Aç ile aynı eylemi gerçekleştirmelidir.
Belge türünde birden fazla düzenleyici kullanılabiliyorsa, kullanıcı dosyaya sağ tıklayıp kısayol menüsünden Birlikte Aç'ı seçerek Belirli bir belge türündeki varsayılan eylemi geçersiz kılabilir veya sıfırlayabilir.
Belge kutusunda sihirbaz oluşturmayın.
Belirli belge türleri için kullanıcı beklentileri
Birkaç farklı temel belge düzenleyicisi türü vardır ve her birinin aynı türdeki diğer kişilerle tutarlı bir etkileşim kümesi vardır.
Metin tabanlı düzenleyici: kod düzenleyicisi, günlük dosyaları
Tasarım yüzeyi: WPF form tasarımcısı, Windows formları
İletişim kutusu stili düzenleyici: Bildirim Tasarım Aracı, proje özellikleri
Model tasarımcısı: iş akışı tasarımcısı, kod haritası, mimari diyagramı, ilerleme
Ayrıca, belgeyi iyi kullanan birkaç düzenleyici olmayan tür de vardır. Belgeleri kendileri düzenlemese de, belge pencereleri için standart etkileşimleri izlemeleri gerekir.
Raporlar: IntelliTrace raporu, Hyper-V raporu, profil oluşturucu raporu
Pano: Tanılama Merkezi
Metin tabanlı düzenleyiciler
Belge, önizleme sekmesi modeline katılarak belgeyi açmadan önizlemeye olanak sağlar.
Belgenin yapısı, belge ana hattı gibi bir yardımcı araç penceresinde gösterilebilir.
IntelliSense (uygunsa) diğer kod düzenleyicilerle tutarlı bir şekilde davranır.
Açılır pencereler veya yardımcı kullanıcı arabirimi, CodeLens gibi mevcut benzer kullanıcı arabirimi için benzer stilleri ve desenleri izler.
Belge durumuyla ilgili iletiler, belgenin en üstündeki bilgi çubuğu denetiminde veya durum çubuğunda gösterilir.
Kullanıcı, paylaşılan Yazı Tipleri ve Renkler sayfası veya düzenleyiciye özgü bir araç > seçenekleri sayfası kullanarak yazı tiplerinin ve renklerin görünümünü özelleştirebilmelidir.
Tasarım yüzeyleri
Boş bir tasarımcının yüzeyinde nasıl başlatıldığını gösteren bir filigran olmalıdır.
Görünüm değiştirme mekanizmaları, bir kod düzenleyicisi açmak için çift tıklama gibi mevcut desenleri veya belge penceresindeki sekmeleri izleyerek her iki bölmeyle de etkileşime olanak sağlar.
Tasarım yüzeyine öğe ekleme işlemi, son derece özel bir araç penceresi gerekmediği sürece Araç Kutusu aracılığıyla yapılmalıdır.
Yüzeydeki öğeler tutarlı bir seçim modelini izler.
Katıştırılmış araç çubukları yalnızca belgeye özgü komutlar içerir, Kaydet gibi yaygın komutlar içermez.
İletişim kutusu stili düzenleyiciler
Denetim düzeni normal iletişim kutusu düzeni kurallarına uygun olmalıdır.
Düzenleyicideki sekmeler belge sekmelerinin görünümüyle eşleşmemeli, izin verilen iki iç sekme stilinden biriyle eşleşmelidir.
Kullanıcıların yalnızca klavye kullanarak denetimlerle etkileşim kurabilmesi gerekir; ya düzenleyiciyi etkinleştirerek ve denetimler aracılığıyla sekme yaparak ya da standart anımsatıcıları kullanarak.
Tasarımcı ortak Save modelini kullanmalıdır. Başka düğmeler uygun olsa da, yüzeye genel kaydet veya işleme düğmeleri yerleştirilmemelidir.
Model tasarımcıları
Boş bir tasarımcının yüzeyinde nasıl başlatıldığını gösteren bir filigran olmalıdır.
Tasarım yüzeyine öğe ekleme işlemi Araç Kutusu aracılığıyla yapılmalıdır.
Yüzeydeki öğeler tutarlı bir seçim modelini izler.
Katıştırılmış araç çubukları yalnızca belgeye özgü komutlar içerir, Kaydet gibi yaygın komutlar içermez.
Gösterge, gösterge veya filigran olarak yüzeyde görünebilir.
Kullanıcı, paylaşılan Yazı Tipleri ve Renkler sayfası veya düzenleyiciye özgü bir Araç > Seçenekleri sayfası kullanarak yazı tiplerinin/renklerin görünümünü özelleştirebilmelidir.
Raporlar
Raporlar genellikle yalnızca bilgidir ve Kaydet modeline katılmaz. Ancak, diğer ilgili bilgilere bağlantılar veya genişletip daraltan bölümler gibi etkileşimler içerebilir.
Yüzeydeki komutların çoğu düğme değil köprü olmalıdır.
Düzen bir üst bilgi içermeli ve standart rapor düzeni yönergelerini izlemelidir.
Panolar
Panoların kendileri bir etkileşim modeline sahip değildir, ancak çeşitli başka araçlar sunmak için bir araç görevi görür.
Kaydet modeline katılmaz.
Kullanıcılar, düzenleyiciyi etkinleştirerek ve denetimler aracılığıyla sekme yaparak veya standart anımsatıcılar kullanarak yalnızca klavye kullanarak denetimlerle etkileşim kurabilmelidir.
İletişim Kutuları
Giriş
Visual Studio'daki iletişim kutuları genellikle kullanıcının çalışmasının tek bir birimini desteklemeli ve ardından kapatılmalıdır.
bir iletişim kutusuna ihtiyacınız olduğunu belirlediyseniz, tercih sırasına göre üç seçeneğiniz vardır:
Özelliklerinizi Visual Studio'daki paylaşılan iletişim kutularıyla tümleştirin.
Mevcut benzer bir iletişim kutusunda bulunan bir deseni kullanarak kendi iletişim kutunuzu oluşturun.
Etkileşim ve düzen yönergelerini izleyerek yeni bir iletişim kutusu oluşturun.
Bu bölümde, Visual Studio iş akışlarında doğru iletişim kutusu deseninin nasıl seçileceği ve iletişim kutusu tasarımı için yaygın kurallar açıklanmaktadır.
Themes
Visual Studio'daki iletişim kutuları iki temel stilden birini izler:
Standart (okunmamış)
İletişim kutularının çoğu standart yardımcı program iletişim kutularıdır ve bunlar değiştirilmemelidir. Ortak denetimleri yeniden şablonlamayın veya stilize edilmiş "modern" düğmeler veya denetimler oluşturmayı denemeyin. Denetimler ve krom görünümü , iletişim kutuları için standart Windows Masaüstü etkileşim yönergelerini izler.
Temalı
Özel "imza" iletişim kutuları temalı olabilir. Temalı iletişim kutuları, stille ilişkilendirilmiş bazı özel etkileşim desenleri de içeren farklı bir görünüme sahiptir. İletişim kutunuzu yalnızca şu gereksinimleri karşılıyorsa temalayın:
İletişim kutusu, sık sık veya birçok kullanıcı tarafından (örneğin, Yeni Proje iletişim kutusu) görülen ve kullanılacak yaygın bir deneyimdir.
İletişim kutusunda öne çıkan ürün markası öğeleri (örneğin, Hesap Ayarlar iletişim kutusu) bulunur.
İletişim kutusu, diğer temalı iletişim kutularını içeren daha büyük bir akışın ayrılmaz bir parçası olarak görünür (örneğin, Bağlan Hizmet Ekle iletişim kutusu).
İletişim kutusu, bir ürün sürümünün tanıtılması veya farklılaştırılmasında stratejik bir rol oynayan bir deneyimin önemli bir parçasıdır.
Temalı iletişim kutusu oluştururken uygun ortam renklerini kullanın ve doğru düzen ve etkileşim desenlerini izleyin. (Bkz. Visual Studio düzeni.)
İletişim kutusu tasarımı
İyi tasarlanmış iletişim kutuları aşağıdaki öğeleri dikkate alır:
Desteklenen kullanıcı görevi
İletişim kutusu metin stili, dili ve terminolojisi
Denetim seçimi ve kullanıcı arabirimi kuralları
Görsel düzen belirtimi ve denetim hizalaması
Klavye erişimi
İçerik düzenleme
Bu temel iletişim kutusu türleri arasındaki farkları göz önünde bulundurun:
Basit iletişim kutuları denetimleri tek bir kalıcı pencerede sunar. Sunu, alan seçici veya simge çubuğu gibi karmaşık denetim desenlerinin çeşitlemelerini içerebilir.
Katmanlı iletişim kutuları , tek bir kullanıcı arabirimi parçası birden çok denetim grubundan oluşuyorsa ekran emlaklarından en iyi şekilde yararlanabilmek için kullanılır. İletişim kutusunun gruplandırmaları, kullanıcının herhangi bir anda hangi gruplandırmayı göreceğini seçebilmesi için sekme denetimleri, gezinti listesi denetimleri veya düğmeler aracılığıyla "katmanlıdır".
Sihirbazlar , kullanıcıyı bir görevin tamamlanmasına doğru mantıksal bir adım dizisi boyunca yönlendirmek için yararlıdır. Sıralı panellerde bir dizi seçenek sunulur ve bazen önceki panelde yapılan bir seçime bağlı olarak farklı iş akışları ("dallar") sunulur.
Basit iletişim kutuları
Basit bir iletişim kutusu, tek bir kalıcı penceredeki denetimlerin sunumudur. Bu sunu, alan seçici gibi karmaşık denetim desenlerinin çeşitlemelerini içerebilir. Basit iletişim kutuları için standart genel düzenin yanı sıra karmaşık denetim gruplandırmalarında gereken belirli düzenleri de izleyin.
Tanımlayıcı Ad Anahtarı Oluştur, Visual Studio'da basit bir iletişim kutusu örneğidir.
Katmanlı iletişim kutuları
Katmanlı iletişim kutuları sekmeler, panolar ve ekli ağaçlar içerir. Bunlar, tek bir kullanıcı arabiriminde sunulan birden çok denetim grubu olduğunda, gayrimenkulleri en üst düzeye çıkarmak için kullanılır. Gruplandırmalar, kullanıcının herhangi bir anda hangi gruplandırmayı göreceğini seçebilmesi için katmanlanır.
En basit durumda, gruplandırmalar arasında geçiş yapma mekanizması bir sekme denetimidir. Çeşitli alternatifler mevcuttur. En uygun stili seçme hakkında bilgi için bkz. Öncelik belirleme ve katmanlama.
Araçlar > Seçenekleri iletişim kutusu, katıştırılmış ağaç kullanan katmanlı bir iletişim kutusu örneğidir:
Araçlar > Seçenekleri, Visual Studio'da katmanlı bir iletişim kutusu örneğidir.
Sihirbazlar
Sihirbazlar, kullanıcıyı görevin tamamlanmasındaki adımlardan oluşan mantıksal bir diziyle yönlendirmek için kullanışlıdır. Sıralı panellerde bir dizi seçenek sunulur ve kullanıcının bir sonrakine geçmeden önce her adımda devam etmesi gerekir. Yeterli varsayılanlar kullanılabilir olduğunda, Son düğmesi etkinleştirilir.
Kalıcı sihirbazlar, şu görevler için kullanılır:
Kullanıcı seçeneklerine bağlı olarak farklı yolların sunulduğu dallanmayı içerir
Sonraki adımların önceki adımlardan kullanıcı girişlerine bağımlı olduğu adımlar arasında bağımlılıklar içerir
Kullanıcı arabiriminin sunulan seçimleri ve her adımda olası sonuçları açıklamak için kullanılması yeterince karmaşıktır
İşlemsel olup, herhangi bir değişiklik işlenmeden önce bir dizi adımın tamamlanması gerekir
Yaygın kurallar
İletişim kutularınızla en iyi tasarımı ve işlevselliği elde etmek için iletişim kutusu boyutu, konum, standartlar, denetim yapılandırması ve hizalaması, kullanıcı arabirimi metni, başlık çubukları, denetim düğmeleri ve erişim tuşlarıyla ilgili bu kuralları izleyin.
Düzene özgü yönergeler için bkz . Visual Studio düzeni.
Size
İletişim kutuları en az 1024x768 ekran çözünürlüğüne sığmalıdır ve ilk iletişim kutusu boyutu 900x700 pikseli aşmamalıdır. İletişim kutuları yeniden boyutlandırılabilir, ancak bu bir gereksinim değildir.
Yeniden boyutlandırılabilir iletişim kutuları için iki öneri vardır:
Minimum boyut, denetim kümesi için kırpma olmadan en iyi duruma getirilecek ve makul yerelleştirme büyümesine uyum sağlayacak şekilde ayarlanacak iletişim kutusu için tanımlanmıştır.
Kullanıcı tarafından ölçeklendirilen boyutun oturumdan oturuma kalıcı olması. Örneğin, kullanıcı bir iletişim kutusunu %150'ye ölçeklendirirse, iletişim kutusunun sonraki bir başlatması %150'de görüntülenir.
Position
İlk başlatmada iletişim kutuları IDE içinde ortalanmış olarak görünmelidir. Yeniden boyutlandırılamayan iletişim kutularının son konumunun kalıcı olması gerekmez, bu nedenle sonraki başlatmalarda ortalanmış olarak görünürler.
Yeniden boyutlandırılabilir iletişim kutuları için boyut sonraki başlatmalarda kalıcı olmalıdır. Yeniden boyutlandırılabilir kalıcı iletişim kutuları için konumun kalıcı olması gerekmez. Bunları IDE içinde ortalanmış olarak görüntülemek, kullanıcının görüntüleme yapılandırması değiştiğinde iletişim kutusunun öngörülemeyen veya kullanılamayan bir konumda görünme olasılığını önler.
Yeniden konumlandırılabilen modsuz iletişim kutuları için, iletişim kutusu daha büyük bir iş akışının ayrılmaz bir parçası olarak sık sık kullanılabilebileceğinden, kullanıcının konumu sonraki başlatmalarda korunmalıdır.
İletişim kutularının başka iletişim kutuları oluşturması gerektiğinde, en üstteki iletişim kutusu üst öğeden sağa ve aşağı doğru art arda yerleştirilmelidir, böylece kullanıcı yeni bir yere gittiği açıkça belli olur.
Modalite
Kalıcı olmak, kullanıcıların devam etmeden önce iletişim kutusunu tamamlaması veya iptal etmesi gerektiği anlamına gelir. Kalıcı iletişim kutuları kullanıcının ortamın diğer bölümleriyle etkileşim kurmasını engellediğinden, özelliğinizin görev akışı bunları mümkün olduğunca tedbirli bir şekilde kullanmalıdır. Kalıcı bir işlem gerektiğinde, Visual Studio'da özelliklerinizi tümleştirebileceğiniz bir dizi paylaşılan iletişim kutusu vardır. Yeni bir iletişim kutusu oluşturmanız gerekiyorsa, benzer işlevlere sahip mevcut bir iletişim kutusunun etkileşim desenini izleyin.
Kullanıcıların yeni kod yazarken Bul ve Değiştir gibi iki etkinliği aynı anda gerçekleştirmesi gerektiğinde, kullanıcının aralarında kolayca geçiş yapabilmesi için iletişim kutusu modeless olmalıdır. Visual Studio genellikle bu tür düzenleyici destekleyen bağlantılı görev için araç pencerelerini kullanır.
Yapılandırmayı denetleme
Visual Studio'da aynı şeyi başaran mevcut denetim yapılandırmalarıyla tutarlı olun.
Başlık çubukları
Başlık çubuğundaki metin, onu başlatan komutun adını yansıtmalıdır.
İletişim kutusu başlık çubuklarında simge kullanılmamalıdır. Sistemin gerekli olduğu durumlarda Visual Studio logosunu kullanın.
İletişim kutuları simge durumuna küçült veya ekranı kapla düğmelerine sahip olmamalıdır.
Başlık çubuğundaki yardım düğmeleri kullanım dışı bırakıldı. Bunları yeni iletişim kutularına eklemeyin. Mevcut olduklarında, kavramsal olarak görevle ilgili bir Yardım konusu başlatmaları gerekir.
Visual Studio iletişim kutularındaki başlık çubukları için kılavuz belirtimleri
Denetim düğmeleri
Genel olarak Tamam, İptal ve Yardım düğmeleri iletişim kutusunun sağ alt köşesinde yatay olarak düzenlenmelidir. İletişim kutusunun alt kısmında denetim düğmeleriyle görsel karışıklık oluşturacak başka düğmeler varsa, alternatif dikey yığına izin verilir.
Visual Studio iletişim kutularındaki denetim düğmeleri için kabul edilebilir yapılandırmalar
İletişim kutusu varsayılan bir denetim düğmesi içermelidir. Varsayılan olarak kullanılacak en iyi komutu belirlemek için aşağıdaki seçeneklerden birini seçin (öncelik sırasına göre listelenmiştir):
Varsayılan olarak en güvenli ve en güvenli komutu seçin. Bu, veri kaybını önlemek ve istenmeyen sistem erişimini önlemek için büyük olasılıkla komutun seçilmesi anlamına gelir.
Veri kaybı ve güvenlik faktörleri değilse, kolaylık sağlamak için varsayılan komutu seçin. İletişim kutusu sık veya yinelenen görevleri desteklediğinde, varsayılan olarak en olası komutun dahil olması kullanıcının iş akışını geliştirir.
Varsayılan komut için kalıcı olarak yıkıcı bir eylem seçmekten kaçının. Böyle bir komut varsa, bunun yerine varsayılan olarak daha güvenli bir komut seçin.
Access keys
Tamam, İptal veya Yardım düğmeleri için erişim tuşlarını kullanmayın. Bu düğmeler varsayılan olarak kısayol tuşlarına eşlenir:
Düğme adı | Klavye kısayolu |
---|---|
Tamam | Enter |
İptal Et | Esc |
Yardım | F1 |
Görüntü
İletişim kutularındaki görüntüleri tedbirli kullanın. İletişim kutularındaki büyük simgeleri yalnızca yer açmak için kullanmayın. Görüntüleri yalnızca uyarı simgeleri veya durum animasyonları gibi iletiyi kullanıcıya iletmenin önemli bir parçasıysa kullanın.
Öncelik belirleme ve katmanlama
Kullanıcı arabiriminize öncelik belirleme
Bazı kullanıcı arabirimi öğelerini ön plana çıkarmak ve iletişim kutularına daha gelişmiş davranış ve seçenekler (belirsiz komutlar dahil) yerleştirmek gerekebilir. Buna yer açarak ve iletişim kutusu gösterildiğinde kullanıcı arabiriminde metin etiketiyle varsayılan olarak görünür hale getirerek yaygın olarak kullanılan işlevleri ön plana getirin.
Kullanıcı arabiriminizi katmanlama
Bir iletişim kutusunun gerekli olduğunu belirlediyseniz ancak kullanıcıya sunmak istediğiniz ilgili işlevler basit bir iletişim kutusunda görüntülenemeyecek kadar ileri gidiyorsa, kullanıcı arabiriminizi katmanlamalısınız. Visual Studio'da en yaygın katmanlama yöntemleri sekmeler, koridorlar veya panolardır. Bazı durumlarda, genişleyip daraltabilen bölgeler uygun olabilir. Uyarlamalı kullanıcı arabirimi genellikle Visual Studio'da önerilmez.
Sekme benzeri denetimler aracılığıyla kullanıcı arabirimini katmanlamanın farklı yöntemlerinin avantajları ve dezavantajları vardır. Durumunuz için uygun bir katmanlama tekniği seçtiğinizden emin olmak için aşağıdaki listeyi gözden geçirin.
Sekme
Anahtar mekanizması | Avantajlar ve uygun kullanım | Dezavantajlar ve uygunsuz kullanım |
---|---|---|
Sekme denetimi | İletişim kutusu sayfalarını ilgili kümeler halinde mantıksal olarak gruplandırma İletişim kutusundaki ilgili denetimlerin beşten az (veya iletişim kutusu boyunca bir satıra sığan sekme sayısı) sayfaları için kullanışlıdır Sekme etiketleri kısa olmalıdır: İçeriği kolayca tanımlayabilen bir veya iki sözcük Ortak bir sistem iletişim kutusu stili Örnek: Dosya Gezgini > Öğesi Özellikleri |
Açıklayıcı kısa etiketler yapmak zor olabilir Genellikle bir iletişim kutusunda son beş sekmeyi ölçeklendirmez Bir satır için çok fazla sekmeniz varsa uygunsuz (alternatif katmanlama tekniği kullanın) Genişletilebilir değil |
Kenar çubuğu gezintisi | Sekmelerden daha fazla kategoriye yer açabilen basit anahtarlama cihazı Düz kategori listesi (hiyerarşi yok) Genişletilebilir Örnek: Özelleştir... > Komut Ekle |
Üçten az grup varsa yatay alan iyi bir kullanım değildir Görev açılan menü için daha uygun olabilir |
Ağaç denetimi | Sınırsız kategoriye izin verir Kategorilerin gruplandırılmasına ve/veya hiyerarşisine izin verir Genişletilebilir Örnek: Araçlar > Seçenekleri |
Yoğun iç içe hiyerarşiler aşırı yatay kaydırmaya neden olabilir Visual Studio'da ağaç görünümlerinin fazlalığı var |
Sihirbaz | Kullanıcıya görev tabanlı, sıralı adımlarda yol göstererek görev tamamlamaya yardımcı olur: Sihirbaz üst düzey bir görevi temsil eder ve tek tek paneller de genel görevi gerçekleştirmek için gereken alt görevleri temsil eder Kullanıcının görevi tamamlamak için birden çok düzenleyici ve araç penceresi kullanması gerekeceği durumlarda olduğu gibi, görev Kullanıcı Arabirimi sınırlarını aştığında kullanışlıdır Görev dallanma gerektirdiğinde kullanışlıdır Görev adımlar arasında bağımlılıklar içerdiğinde kullanışlıdır Farklı benzer iletişim kutularının sayısını azaltmak için bir iletişim kutusunda tek bir karar çatalı içeren benzer birkaç görev sunulabildiğinde kullanışlıdır |
Sıralı iş akışı gerektirmeyen herhangi bir görev için uygun değil Kullanıcılar, sihirbaz tarafından çok fazla adımla boğulabilir ve kafaları karışabilir Sihirbazların doğası gereği sınırlı ekran emlakları vardır |
Koridorlar veya panolar
Koridorlar ve panolar, diğer iletişim kutularına ve pencerelere fırlatma noktası görevi görecek iletişim kutuları veya panellerdir. İyi tasarlanmış "koridor" hemen yalnızca en yaygın seçenekleri, komutları ve ayarları ortaya çıkararak kullanıcının ortak görevleri kolayca gerçekleştirmesini sağlar. Gerçek dünya koridoru arkalarındaki odalara erişmek için kapı sağlar gibi, burada daha az yaygın kullanıcı arabirimi ana koridordan erişilebilen ilgili işlevselliğin ayrı "odalarına" (genellikle diğer iletişim kutuları) toplanır.
Alternatif olarak, daha az yaygın olan işlevleri ayrı konumlarda yeniden düzenlemek yerine tüm kullanılabilir işlevleri tek bir koleksiyonda sunan bir kullanıcı arabirimi yalnızca bir panodur.
Outlook'ta ek kullanıcı arabirimini kullanıma hazırlayan koridor kavramı
Uyarlamalı Kullanıcı Arabirimi
Kullanıcı arabirimini kullanıma veya kullanıcının kendi kendine bildirilen deneyimine göre göstermek veya gizlemek, diğer bölümleri gizlerken gerekli kullanıcı arabirimini sunmanın başka bir yoludur. Kullanıcı arabiriminin ne zaman gösterileceğine veya gizleneceği konusunda karar verme algoritmaları karmaşık olabileceğinden, visual studio'da bu önerilmez ve bazı durumlarda kurallar her zaman yanlış olacaktır.
Projeler
Çözüm Gezgini projeler
Projelerin çoğu başvuru tabanlı, dizin tabanlı veya karma olarak sınıflandırılır. Üç proje türü de Çözüm Gezgini aynı anda desteklenir. Projelerle çalışmadaki kullanıcı deneyiminin kökü bu pencerenin içinde gerçekleşir. Farklı proje düğümleri başvuru, dizin veya karma mod türünde projeler olsa da, projeye özgü kullanıcı desenlerine ayırmadan önce başlangıç noktası olarak uygulanması gereken ortak bir etkileşim deseni vardır.
Projeler her zaman:
Proje içeriklerini düzenlemek için proje klasörleri ekleme özelliğini destekleme
Proje kalıcılığı için bir consis çadır modu l tutma
Projeler aşağıdakiler için tutarlı etkileşim modellerini de korumalıdır:
Proje öğelerini kaldırma
Belgeleri kaydetme
Proje özelliği düzenleme
Projeyi alternatif bir görünümde düzenleme
Sürükle ve bırak işlemleri
Sürükle ve bırak etkileşim modeli
Projeler genellikle başvuru tabanlı (yalnızca depolamadaki proje öğelerine yapılan başvuruları kalıcı hale getirebiliyor), dizin tabanlı (yalnızca projenin hiyerarşisinde fiziksel olarak depolanan proje öğelerini kalıcı hale getirebiliyor) veya karma (başvuruları veya fiziksel öğeleri kalıcı hale getirebiliyor) olarak sınıflandırır. IDE, Çözüm Gezgini içinde üç proje türünü de aynı anda barındırmaktadır.
Sürükleyip bırakma perspektifinden bakıldığında, aşağıdaki özellikler Çözüm Gezgini içindeki her proje türüne uygulanmalıdır:
Başvuru tabanlı proje: Önemli nokta, projenin depolamadaki bir öğeye yönelik bir başvuru etrafında sürükleniyor olmasıdır. Başvuru tabanlı bir proje taşıma işlemi için kaynak görevi görürse, yalnızca öğeye başvuruyu projeden kaldırması gerekir. Öğe aslında sabit sürücüden silinmemelidir. Başvuru tabanlı bir proje taşıma (veya kopyalama) işlemi için bir hedef olarak hareket ettiğinde, öğenin özel bir kopyasını oluşturmadan özgün kaynak öğeye bir başvuru eklemelidir.
Dizin tabanlı proje: Sürükle ve bırak görünümünden proje, başvuru yerine fiziksel öğenin etrafında sürükleniyor. Dizin tabanlı bir proje taşıma işlemi için kaynak görevi görürse, fiziksel öğeyi sabit sürücüden silmenin yanı sıra projeden kaldırması gerekir. Dizin tabanlı bir proje taşıma (veya kopyalama) işlemi için bir hedef olarak hareket ettiğinde, kaynak öğenin bir kopyasını hedef konumunda yapmalıdır.
Karma hedef proje: Sürükle ve bırak görünümünden, bu tür bir projenin davranışı sürüklenen öğenin niteliğine (depolamadaki bir öğeye veya öğenin kendisine başvuru) bağlıdır. Başvurular ve fiziksel öğeler için doğru davranış yukarıda açıklanmıştır.
Çözüm Gezgini yalnızca bir proje türü varsa, sürükleyip bırakma işlemleri kolay olacaktır. Her proje sisteminin kendi sürükle ve bırak davranışını tanımlama özelliği olduğundan, öngörülebilir bir kullanıcı deneyimi sağlamak için belirli yönergelere (Windows Gezgini sürükle ve bırak davranışına göre) uyulmalıdır:
Çözüm Gezgini değiştirilmemiş bir sürükleme işlemi (Ctrl veya Shift tuşları basılı tutulduğunda) taşıma işlemine neden olmalıdır.
Shift-drag işlemi de taşıma işlemine neden olmalıdır.
Ctrl tuşunu basılı tutarak sürükleme işlemi kopyalama işlemine neden olmalıdır.
Başvuru tabanlı ve karma proje sistemleri, kaynak öğeye bağlantı (veya başvuru) eklemeyi destekler. Bu projeler sürükle ve bırak işleminin hedefi olduğunda (Ctrl + Shift basılı tutulduğunda), projeye eklenen öğeye başvuru yapılması gerekir
Tüm sürükle ve bırak işlemleri başvuru tabanlı, dizin tabanlı ve karma projelerin birleşimleri arasında mantıklı değildir. Özellikle, dizin tabanlı bir kaynak proje ile başvuru tabanlı hedef proje arasında taşıma işlemine izin vermek sorunludur çünkü taşıma tamamlandıktan sonra kaynak dizin tabanlı projenin kaynak öğeyi silmesi gerekir. Hedef başvuru tabanlı proje daha sonra silinmiş bir öğeye başvuruyla sonuç görünür.
Hedef başvuru tabanlı projenin kaynak öğenin bağımsız bir kopyasını oluşturmaması gerektiğinden, bu tür projeler arasında kopyalama işlemine izin vermek de yanıltıcıdır. Benzer şekilde, dizin tabanlı bir proje başvuruları kalıcı hale getirmediğinden dizin tabanlı hedef projeye Ctrl + Shift tuşlarına basılmamalıdır. Sürükle ve bırak işleminin desteklenmediği durumlarda, IDE bırakma işlemine izin vermemeli ve kullanıcıya bırakma yok imlecini göstermelidir (aşağıdaki işaretçi tablosunda gösterilmiştir).
Sürükle ve bırak davranışını düzgün bir şekilde uygulamak için sürüklemenin kaynak projesinin doğasını hedef projeye iletmesi gerekir. (Örneğin, başvuru mu yoksa dizin tabanlı mı?) Bu bilgiler, kaynak tarafından sunulan pano biçimiyle gösterilir. Sürükleme (veya pano kopyalama işleminin) kaynağı olarak, projenin başvuru tabanlı mı yoksa dizin tabanlı mı olduğuna bağlı olarak, projenin sırasıyla veya sırasıyla sunması CF_VSREFPROJECTITEMS
CF_VSSTGPROJECTITEMS
gerekir. Bu biçimlerin her ikisi de Windows CF_HDROP
biçimine benzer veri içeriğine sahiptir; tek farkı, dosya adları yerine dize listelerinin çiftNULL
sonlandırılan bir dize listesi Projref
olmasıdır (veya uygun şekilde döndürülür IVsSolution::GetProjrefOfItem
::GetProjrefOfProject
).
Bırakma işleminin (veya pano yapıştırma işleminin) hedefi olarak, bir projenin hem hem CF_VSSTGPROJECTITEMS
de CF_VSREFPROJECTITEMS
kabul etmesi gerekir, ancak sürükleyip bırakma işleminin tam olarak işlenmesi hedef projenin ve kaynak projenin yapısına bağlı olarak değişir. Kaynak proje, veya CF_VSSTGPROJECTITEMS
sunup sunmadığına CF_VSREFPROJECTITEMS
göre doğasını bildirir. Bırakma hedefi kendi doğasını anlar ve bu nedenle bir taşıma, kopyalama veya bağlantının gerçekleştirilmesi gerekip gerekmediğine ilişkin kararlar almak için yeterli bilgiye sahiptir. Kullanıcı, Ctrl, Shift veya Ctrl ve Shift tuşlarına basarak hangi sürükle ve bırak işleminin gerçekleştirilmesi gerektiğini de değiştirir. Bırakma hedefinin ve DragOver
yöntemlerinde hangi işlemin önceden gerçekleştirileceğini düzgün şekilde belirtmesi DragEnter
önemlidir. Çözüm Gezgini, kaynak projeyle hedef projenin aynı proje olup olmadığını otomatik olarak bilir.
Proje öğelerini Visual Studio örnekleri arasında sürükleme (örneğin, bir devenv.exe örneğinden diğerine) özellikle desteklenmez. Çözüm Gezgini bunu da doğrudan devre dışı bırakır.
Kullanıcı her zaman bir öğe seçip hedef konuma sürükleyerek ve öğe bırakılmadan önce aşağıdaki fare işaretçilerinden hangisinin göründüğünü gözlemleyerek sürükle ve bırak işleminin etkisini saptayabilmelidir:
Mouse pointer | Komut | Açıklama |
---|---|---|
![]() |
Bırakma yok | Öğe belirtilen konuma bırakılamaz. |
![]() |
Kopya | Öğe hedef konuma kopyalanır. |
![]() |
Taşı | Öğe hedef konuma taşınır. |
![]() |
Başvuru ekleme | Seçili öğeye başvuru hedef konuma eklenir. |
Başvuru tabanlı projeler
Aşağıdaki tabloda, kaynak öğenin yapısına ve başvurulmuş hedef projeler için basılan değiştirici tuşlara göre gerçekleştirilmesi gereken sürükle ve bırak (kesme/kopyalama/yapıştırma) işlemleri özetlenmiştir:
Değiştirici | Kategori | Kaynak öğe: Başvuru/Bağlantı | Kaynak öğe: Fiziksel öğe veya dosya sistemi (CF_HDROP ) |
---|---|---|---|
Değiştirici yok | Eylem | Taşı | Bağlantı |
Değiştirici yok | Hedef | Özgün öğeye başvuru ekler | Özgün öğeye başvuru ekler |
Değiştirici yok | Source | Özgün öğeye başvuru siler | Özgün öğeyi korur |
Değiştirici yok | Result | DROPEFFECT_MOVE öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
DROPEFFECT_LINK öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
Shift+Sürükleme | Eylem | Taşı | Bırakma yok |
Shift+Sürükleme | Hedef | Özgün öğeye başvuru ekler | Bırakma yok |
Shift+Sürükleme | Source | Özgün öğeye başvuru siler | Bırakma yok |
Shift+Sürükleme | Result | DROPEFFECT_MOVE öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
Bırakma yok |
Ctrl+Sürükleme | Eylem | Kopya | Bırakma yok |
Ctrl+Sürükleme | Hedef | Özgün öğeye başvuru ekler | Bırakma yok |
Ctrl+Sürükleme | Source | Özgün öğeye başvuru korur | Bırakma yok |
Ctrl+Sürükleme | Result | DROPEFFECT_COPY öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
Bırakma yok |
Ctrl+Shift+Sürükleme | Eylem | Bağlantı ekleyin | Bağlantı ekleyin |
Ctrl+Shift+Sürükleme | Hedef | Özgün öğeye başvuru ekler | Özgün öğeye başvuru ekler |
Ctrl+Shift+Sürükleme | Source | Özgün öğeye başvuru korur | Özgün öğeyi korur |
Ctrl+Shift+Sürükleme | Result | DROPEFFECT_LINK öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
DROPEFFECT_LINK öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
Ctrl+Shift+Sürükleme | Not | Windows Gezgini'ndeki kısayollar için sürükle ve bırak davranışıyla aynıdır. | |
Kes/Yapıştır | Eylem | Taşı | Bağlantı |
Kes/Yapıştır | Hedef | Özgün öğeye başvuru ekler | Özgün öğeye başvuru ekler |
Kes/Yapıştır | Source | Özgün öğeye başvuru korur | Özgün öğeyi korur |
Kes/Yapıştır | Result | Öğe, depolama alanında özgün konumda kalır | Öğe, depolama alanında özgün konumda kalır |
Kopyala/Yapıştır | Eylem | Kopya | Bağlantı |
Kopyala/Yapıştır | Source | Özgün öğeye başvuru ekler | Özgün öğeye başvuru ekler |
Kopyala/Yapıştır | Result | Özgün öğeye başvuru korur | Özgün öğeyi korur |
Kopyala/Yapıştır | Eylem | Öğe, depolama alanında özgün konumda kalır | Öğe, depolama alanında özgün konumda kalır |
Dizin tabanlı projeler
Aşağıdaki tabloda, kaynak öğenin yapısına ve dizin tabanlı hedef projeler için basılan değiştirici tuşlara göre gerçekleştirilmesi gereken sürükle ve bırak (kesme/kopyalama/yapıştırma) işlemleri özetlenmiştir:
Değiştirici | Kategori | Kaynak öğe: Başvuru/Bağlantı | Kaynak öğe: Fiziksel öğe veya dosya sistemi (CF_HDROP ) |
---|---|---|---|
Değiştirici yok | Eylem | Taşı | Taşı |
Değiştirici yok | Hedef | Öğeyi hedef konuma kopyalar | Öğeyi hedef konuma kopyalar |
Değiştirici yok | Source | Özgün öğeye başvuru siler | Özgün öğeye başvuru siler |
Shift+Sürükleme | Eylem | Taşı | Taşı |
Shift+Sürükleme | Hedef | Öğeyi hedef konuma kopyalar | Öğeyi hedef konuma kopyalar |
Shift+Sürükleme | Source | Özgün öğeye başvuru siler | Öğeyi özgün konumdan siler |
Shift+Sürükleme | Result | DROPEFFECT_MOVE öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
DROPEFFECT_MOVE öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
Ctrl+Sürükleme | Eylem | Kopya | Kopya |
Ctrl+Sürükleme | Hedef | Öğeyi hedef konuma kopyalar | Öğeyi hedef konuma kopyalar |
Ctrl+Sürükleme | Source | Özgün öğeye başvuru korur | Özgün öğeye başvuru korur |
Ctrl+Sürükleme | Result | DROPEFFECT_COPY öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
DROPEFFECT_COPY öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
Ctrl+Shift+Sürükleme | Bırakma yok | Bırakma yok | |
Kes/Yapıştır | Eylem | Taşı | Taşı |
Kes/Yapıştır | Hedef | Öğeyi hedef konuma kopyalar | Öğeyi hedef konuma kopyalar |
Kes/Yapıştır | Source | Özgün öğeye başvuru siler | Öğeyi özgün konumdan siler |
Kes/Yapıştır | Result | Öğe, depolama alanında özgün konumda kalır | Öğe depolamadaki özgün konumdan silindi |
Kopyala/Yapıştır | Eylem | Kopya | Kopya |
Kopyala/Yapıştır | Hedef | Özgün öğeye başvuru ekler | Öğeyi hedef konuma kopyalar |
Kopyala/Yapıştır | Source | Özgün öğeyi korur | Özgün öğeyi korur |
Kopyala/Yapıştır | Result | Öğe, depolama alanında özgün konumda kalır | Öğe, depolama alanında özgün konumda kalır |
Karma hedef projeler
Aşağıdaki tabloda, kaynak öğenin yapısına ve karma hedef projeler için basılan değiştirici tuşlara göre gerçekleştirilmesi gereken sürükle ve bırak (kesme/kopyalama/yapıştırma) işlemleri özetlenmiştir:
Değiştirici | Kategori | Kaynak öğe: Başvuru/Bağlantı | Kaynak öğe: Fiziksel öğe veya dosya sistemi (CF_HDROP ) |
---|---|---|---|
Değiştirici yok | Eylem | Taşı | Taşı |
Değiştirici yok | Hedef | Özgün öğeye başvuru ekler | Öğeyi hedef konuma kopyalar |
Değiştirici yok | Source | Özgün öğeye başvuru siler | Özgün öğeye başvuru siler |
Değiştirici yok | Result | DROPEFFECT_ MOVE öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
DROPEFFECT_ MOVE öğesinden ::Drop eylem olarak döndürülür ve öğe depolamadaki özgün konumdan silinir |
Shift+Sürükleme | Eylem | Taşı | Taşı |
Shift+Sürükleme | Hedef | Özgün öğeye başvuru ekler | Öğeyi hedef konuma kopyalar |
Shift+Sürükleme | Source | Özgün öğeye başvuru siler | Öğeyi özgün konumdan siler |
Shift+Sürükleme | Result | DROPEFFECT_ MOVE öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
DROPEFFECT_ MOVE öğesinden ::Drop eylem olarak döndürülür ve öğe depolamadaki özgün konumdan silinir |
Ctrl+Sürükleme | Eylem | Kopya | Kopya |
Ctrl+Sürükleme | Hedef | Özgün öğeye başvuru ekler | Öğeyi hedef konuma kopyalar |
Ctrl+Sürükleme | Source | Özgün öğeye başvuru korur | Özgün öğeyi korur |
Ctrl+Sürükleme | Result | DROPEFFECT_ COPY öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
DROPEFFECT_ COPY öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
Ctrl+Shift+Sürükleme | Eylem | Bağlantı ekleyin | Bağlantı ekleyin |
Ctrl+Shift+Sürükleme | Hedef | Özgün öğeye başvuru ekler | Özgün kaynak öğeye başvuru ekler |
Ctrl+Shift+Sürükleme | Source | Özgün öğeye başvuru korur | Özgün öğeyi korur |
Ctrl+Shift+Sürükleme | Result | DROPEFFECT_ LINK öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
DROPEFFECT_ LINK öğesinden ::Drop eylem olarak döndürülür ve öğe depolama alanında özgün konumda kalır |
Kes/Yapıştır | Eylem | Taşı | Taşı |
Kes/Yapıştır | Hedef | Öğeyi hedef konuma kopyalar | Öğeyi hedef konuma kopyalar |
Kes/Yapıştır | Source | Özgün öğeye başvuru siler | Öğeyi özgün konumdan siler |
Kes/Yapıştır | Result | Öğe, depolama alanında özgün konumda kalır | Öğe depolamadaki özgün konumdan silindi |
Kopyala/Yapıştır | Eylem | Kopya | Kopya |
Kopyala/Yapıştır | Hedef | Özgün öğeye başvuru ekler | Öğeyi hedef konuma kopyalar |
Kopyala/Yapıştır | Source | Özgün öğeyi korur | Özgün öğeyi korur |
Kopyala/Yapıştır | Result | Öğe, depolama alanında özgün konumda kalır | Öğe, depolama alanında özgün konumda kalır |
Çözüm Gezgini sürükleme uygulanırken bu ayrıntılar dikkate alınmalıdır:
Birden çok seçim senaryosu için tasarım.
Dosya adları (tam yol) hedef projede benzersiz olmalıdır veya bırakma işleminin yapılmasına izin verilmemelidir.
Klasör adları bırakılan düzeyde benzersiz (büyük/küçük harfe duyarsız) olmalıdır.
Sürüklendiği sırada açık veya kapalı olan dosyalar arasında davranış farklılıkları vardır (yukarıdaki senaryolarda belirtilmemiştir).
Üst düzey dosyalar klasörlerdeki dosyalardan biraz farklı davranır.
Dikkat edilmesi gereken bir diğer sorun da, açık tasarımcıları veya düzenleyicileri olan öğelerde taşıma işlemlerinin nasıl işleneceğini öğrenmektir. Beklenen davranış aşağıdaki gibidir (bu tüm proje türleri için geçerlidir):
Açık düzenleyici/tasarımcı kaydedilmemiş değişikliklere sahip değilse düzenleyici/tasarımcı penceresi sessizce kapatılmalıdır.
Açık düzenleyicide/tasarımcıda kaydedilmemiş değişiklikler varsa, sürüklemenin kaynağı bırakmanın gerçekleşmesini beklemeli ve ardından aşağıdakine benzer bir istemle pencereyi kapatmadan önce kullanıcıdan açık belgelerdeki kaydedilmemiş değişiklikleri kaydetmesini istemelidir:
========================================================== One or more open documents have unsaved changes. Do you want to save uncommitted changes before proceeding? [Yes] [No] [Cancel] ==========================================================
Bu, kullanıcıya hedef kopyalarını almadan önce devam eden çalışmayı kaydetme fırsatı verir. Bu işlemeyi etkinleştirmek için yeni bir yöntem IVsHierarchyDropDataSource2::OnBeforeDropNotify
eklendi.
Hedef daha sonra öğenin durumunu depolama alanında olduğu gibi kopyalar (kullanıcı Hayır'ı seçtiğinde düzenleyicide kaydedilmemiş değişiklikler dahil değildir). Hedef kopyalama işlemini (içinde IVsHierarchyDropDataSource::Drop
) tamamladıktan sonra kaynağa taşıma işleminin silme bölümünü (içinde IVsHierarchyDropDataSource::OnDropNotify
) tamamlama fırsatı verilir.
Kaydedilmemiş değişiklikleri olan tüm düzenleyiciler açık bırakılmalıdır. Kaydedilmemiş değişiklikleri olan belgeler için bu, taşıma işleminin kopyalama bölümünün gerçekleştirileceği ancak silme bölümünün durdurulacağı anlamına gelir. Kullanıcının Hayır'ı seçtiği birden çok seçim senaryosunda, kaydedilmemiş değişiklikleri olan belgeler kapatılmamalı veya kaldırılmamalı, ancak kaydedilmemiş değişiklikleri olmayanlar kapatılmalı ve kaldırılmalıdır.