RulerSmith
Hata ayıkladığınız uygulamanın üzerinde Ctrl+Shift tuşlarını basılı tutun: işaretçinin altındaki denetim boyutunu, yumuşak oklar da çevresindeki denetimlere olan uzaklıkları gösterir. Tuşları bırakın, hepsi kaybolur.
Ücretsiz · Visual Studio 2022 ve 2026 · 14 arayüz dili · telemetri yok
Neden RulerSmith

Tahmin değil, gerçek sınırlar
Boyutlar, ekran okuyucuların kullandığı ağaç olan UI Automation'dan gelir; bu yüzden gölgeler, gradyanlar ve kenar yumuşatma bir piksel cetvelini yanılttığı gibi onu yanıltamaz.
Yazdığınız birimler
WPF ve web sayfaları cihazdan bağımsız birimlerle yerleşim yapar: 76 × 32, XAML veya CSS'e yazdığınız değerdir; ekran pikselleri (%200'de 152 × 64) hemen altında gösterilir.
Yalnızca tuş basılıyken
Tuşu basılı tutana kadar hiçbir şey hesaplanmaz veya çizilmez. Katman hiçbir zaman tıklamayı veya odağı almaz ve hata ayıklayıcı duraklatıldığında dinlenir.
Ücretsiz, koşulsuz
Abonelik yok, “pro” sürüm yok, veri toplama yok, Çıktı penceresinde ya da başlangıçta mesaj yok. Sizden isteyeceğimiz tek şey — bir süre kullandıktan sonra — Marketplace'te bir değerlendirme. Visual Studio 2022 ve 2026'da, x64 ve ARM64 üzerinde çalışır.
Özellikler
- İşaretçinin altındaki denetimin boyutu ve türü (Button, ComboBox…); uygulamanın birimleriyle ve ölçeklendirilmiş ekranda ekran pikselleriyle.
- Komşulara olan boşluklar: her taraftaki en yakın denetim veya hiç yoksa kapsayıcının kenarı; elle çizeceğiniz çizgiler.
- Monitör başına DPI: her monitörün ölçeği hesaba katılır; WinForms ve Win32 uygulamaları, DPI farkında olsun ya da olmasın, kendi pikselleriyle ölçülür.
- RulerSmith paneli: denetimin adı ve automation id'si, boyutu, konumu ve nerede bittikleriyle birlikte boşlukları; ölçüm ve her uygulama türü için anahtarlar.
- Yumuşak bir giriş: önce çerçeve belirir, ardından oklar denetimden dışarı doğru uzar; ya da her şey aynı anda, ya da hiç animasyon olmadan.
- Hata ayıklama oturumuna bağlı: F5 ile başlar, yalnızca hata ayıklanan uygulamayı (ve onun açtıklarını, örneğin WebView2'yi veya bir web projesinin tarayıcısını) ölçer ve oturumla birlikte durur.
Ölçüm
Hata ayıklamayı başlatın, Ctrl+Shift tuşlarını basılı tutun ve işaretçiyi uygulamanın üzerinde gezdirin. Yeni bir denetimin çevresine çerçeve çizilir, boyutu altında belirir ve boşluklar komşulara doğru uzanır; sayılar işaretçiyi denetimden denetime izler.

| Ekranda | Anlamı |
|---|---|
| İnce çerçeve | İşaretçinin altındaki denetimin sınırları. Düğmenin içindeki metin veya simge düğme sayılır. |
| Button 76 × 32 152 × 64 px · %200 | Uygulamanın birimleriyle tür ve boyut; ölçeklendirilmiş ekranda ikinci satırda ekran pikselleri ve ölçek. |
| Düz ok | O taraftaki en yakın denetime olan boşluk. Birbirine değen denetimlerde ok gösterilmez. |
| Kesik çizgili ok | O tarafta denetim yok: kapsayıcının kenarına (bir pencerenin istemci alanına) olan boşluk. |
RulerSmith paneli
Hata Ayıkla → RulerSmith Paneli (ayrıca Görünüm → Diğer Pencereler altında). Araç çubuğu ölçümü açar ve kapatır — Hata Ayıkla araç çubuğundaki Düzeni Ölç ile aynı anahtar — ve her uygulama türünü ayrı ayrı: WPF, WinForms, Win32, Web. Altında son ölçüm yer alır: denetimin adı ve automation id'si (denetimi XAML'de bununla bulursunuz), boyutu, penceredeki konumu ve bittiği denetimle birlikte her boşluk. Durum satırı neden hiçbir şey çizilmediğini söyler: hata ayıklanmıyor, bir kesme noktasında duraklatıldı veya ölçüm kapalı.

Hangi uygulamalar
RulerSmith denetimleri UI Automation üzerinden okur; bu yüzden uygulamanın orada sunduğunu ölçer — standart denetimler bunu kendiliğinden yapar.
| Uygulama | Notlar |
|---|---|
| WPF | Birimler cihazdan bağımsızdır. Visual Studio'nun hata ayıklanan WPF uygulamasının üzerine yerleştirdiği saydam XAML araç çubuğu atlanır; sekmelerin içeriği bulunur. |
| Windows Forms | Birimler uygulamanın pikselleridir: DPI farkında bir uygulama için 1:1, olmayan bir uygulama için Windows tarafından esnetilmiş. |
| Win32, MFC | CreateWindow ile oluşturulan pencereler ve kaynaklardan iletişim kutuları: düğmeler, düzenleme kutuları, açılan kutular, listeler, ağaçlar. |
| Web sayfaları | Hata ayıklama sırasında Edge, Chrome ve Firefox — Visual Studio bir web projesini çoğu zaman zaten çalışan tarayıcıda açar. Birimler CSS pikselleridir. Paneldeki Web anahtarı bunları kapatır. |
Desteklenmez: WinUI, UWP ve MAUI. Automation peer oluşturmayan özel bir denetim UI Automation için görünmezdir; onun yerine kapsayıcısı ölçülür.
Ayarlar
Araçlar → Seçenekler → SmithWorks → RulerSmith. Her seçeneğin bir açıklaması vardır.
| Seçenek | Varsayılan |
|---|---|
| Ölçmek için basılı tutun | Ctrl+Shift |
| Hata ayıklama sırasında ölç | açık |
| Ölçeklendirilmiş ekranlarda ekran piksellerini göster | açık |
| Girişi canlandır | açık |
| Boşluk oklarını denetimden dışarı doğru uzat | açık |
| Marketplace'te değerlendirme iste | açık |
Ayarlar %LocalAppData%\RulerSmith klasöründe saklanır.

SSS
RulerSmith herhangi bir veri gönderiyor mu?
Hayır. Her şey bilgisayarınızda gerçekleşir: küçük bir katman işlemi denetimleri UI Automation üzerinden okur ve ekrana çizer. Ağ isteği yok, telemetri yok.
Yalnızca pencerenin tamamının (veya büyük bir panelin) çevresine çerçeve çiziliyor. Neden?
Uygulama içindeki denetimleri UI Automation'a sunmuyor; genellikle automation peer'ı olmayan özel denetimlerdir. Böyle bir denetimde OnCreateAutomationPeer yöntemini geçersiz kılmak onu ölçülebilir ve ekran okuyucular için de erişilebilir yapar.
Tuşu basılı tuttuğumda hiçbir şey çizilmiyor.
Bir hata ayıklama oturumunun çalıştığını ve duraklatılmadığını, panelin durum satırında Ölçülüyor yazdığını denetleyin. Bir uygulama türü panelde kapatılmış olabilir. Aynı tuşları başka bir program kullanıyor olabilir: ayarlarda başka bir birleşim seçin.
Kesme noktasında neden duruyor?
Duraklatılmış bir uygulama UI Automation'a yanıt veremez. Katman, siz devam edene (F5) kadar dinlenir.
WinUI, UWP veya MAUI desteklenecek mi?
Şimdilik hayır. İhtiyacınız varsa Feedback deposunda bunu belirtin.
Bir uygulamayı Visual Studio olmadan ölçebilir miyim?
Evet: uzantının klasöründen RulerSmith.Overlay.exe dosyasını çalıştırın. Sistem tepsisinde durur ve tuş basılıyken herhangi bir pencereyi ölçer.
Bir sorunu nereye bildirebilir veya özellik önerebilirim?
GitHub'daki Feedback deposunda bir issue açın; hatalar ve fikirler için formlar vardır (özel adları değiştirin). Marketplace'teki Q&A sekmesini de kullanabilirsiniz.
Değişiklik günlüğü
1.0.2
- Uzantı işinize yaradıktan sonra Marketplace'te bir kez değerlendirme isteği — Daha sonra ve Bir daha sorma seçenekleriyle; bir ayarla kapatılabilir.
1.0.1
- Ayarlarda “Marketplace'te değerlendir” bağlantısı.
1.0.0
- İlk genel sürüm.