LazowskiAnton · Extensions

RulerSmith

Podržte Ctrl+Shift nad aplikací, kterou ladíte: ovládací prvek pod ukazatelem ukáže svou velikost a jemné šipky vzdálenosti k okolním ovládacím prvkům. Pusťte klávesy a vše zmizí.

Zdarma · Visual Studio 2022 a 2026 · 14 jazyků rozhraní · žádná telemetrie

Proč RulerSmith

Tentýž formulář bez RulerSmith a s ním: obrys tlačítka, jeho velikost a mezery k sousedům

Skutečné hranice, ne odhad

Velikosti pocházejí z UI Automation — stromu, který používají čtečky obrazovky —, takže je neoklamou stíny, přechody ani vyhlazování hran, jako oklamou pixelové pravítko.

Jednotky, které píšete

WPF a webové stránky rozvrhují v jednotkách nezávislých na zařízení: 76 × 32 je to, co napíšete do XAML nebo CSS, a pixely obrazovky (152 × 64 při 200 %) jsou zobrazené pod tím.

Jen když držíte klávesu

Dokud klávesu nepodržíte, nic se nepočítá ani nekreslí. Překryv nikdy nepřevezme kliknutí ani fokus a odpočívá, když je ladicí program pozastavený.

Zdarma a bez háčků

Žádné předplatné, žádná verze „pro“, žádný sběr dat a žádné zprávy v okně „Výstup“ ani při spuštění. Jediné, o co kdy požádáme — až ho nějakou dobu budete používat — je hodnocení na Marketplace. Funguje ve Visual Studiu 2022 a 2026, x64 i ARM64.

Funkce

Měření

Spusťte ladění, podržte Ctrl+Shift a pohybujte ukazatelem nad aplikací. Nový ovládací prvek dostane obrys, pod ním se objeví jeho velikost a mezery se rozběhnou k sousedům; čísla sledují ukazatel od prvku k prvku.

Tlačítko Save s obrysem, jeho velikostí a mezerami k Cancel, poli komentáře a okrajům okna
Na obrazovceVýznam
Tenký obrysHranice ovládacího prvku pod ukazatelem. Text nebo ikona uvnitř tlačítka se počítá jako tlačítko.
Button 76 × 32
152 × 64 px · 200 %
Druh a velikost v jednotkách aplikace; na škálovaném displeji na druhém řádku pixely obrazovky a měřítko.
Plná šipkaMezera k nejbližšímu ovládacímu prvku na té straně. Dotýkající se prvky šipku nemají.
Přerušovaná šipkaNa té straně není žádný ovládací prvek: mezera k okraji kontejneru (klientské oblasti okna).

Panel RulerSmith

Ladit → Panel RulerSmith (také v Zobrazit → Další okna). Panel nástrojů zapíná a vypíná měření — stejný přepínač jako Měřit rozložení na panelu nástrojů Ladění — a každý druh aplikace zvlášť: WPF, WinForms, Win32, Web. Pod ním poslední měření: název a automation id ovládacího prvku (podle něj prvek najdete v XAML), jeho velikost, pozice v okně a každá mezera s ovládacím prvkem, u kterého končí. Stavový řádek říká, proč se nic nekreslí: neladí se, pozastaveno na zarážce, nebo je měření vypnuté.

Panel RulerSmith se změřeným tlačítkem Save, jeho velikostí a mezerami

Které aplikace

RulerSmith čte ovládací prvky přes UI Automation, takže měří to, co tam aplikace zpřístupní — a standardní ovládací prvky to dělají samy od sebe.

AplikacePoznámky
WPFJednotky jsou nezávislé na zařízení. Průhledný panel nástrojů XAML, který Visual Studio pokládá přes laděnou aplikaci WPF, se přeskakuje; obsah karet se najde.
Windows FormsJednotky jsou pixely aplikace: 1:1 u aplikace s podporou DPI, roztažené Windows u aplikace bez ní.
Win32, MFCOkna vytvořená pomocí CreateWindow a dialogy z prostředků: tlačítka, textová pole, pole se seznamem, seznamy, stromy.
Webové stránkyEdge, Chrome a Firefox během ladění — Visual Studio často otevře webový projekt v prohlížeči, který už běží. Jednotkami jsou pixely CSS. Vypíná je přepínač Web v panelu.

Nepodporováno: WinUI, UWP a MAUI. Vlastní ovládací prvek, který nevytváří automation peer, je pro UI Automation neviditelný a místo něj se měří jeho kontejner.

Nastavení

Nástroje → Možnosti → SmithWorks → RulerSmith. Každá možnost má popis.

MožnostVýchozí
Pro měření podržteCtrl+Shift
Měřit při laděnízapnuto
Zobrazit pixely obrazovky na škálovaných displejíchzapnuto
Animovat zobrazenízapnuto
Šipky mezer vyrůstají z ovládacího prvkuzapnuto
Požádat o hodnocení na Marketplacezapnuto

Nastavení se ukládá do %LocalAppData%\RulerSmith.

Stránka možností RulerSmith
Stránka možností.

Časté dotazy

Odesílá RulerSmith nějaká data?

Ne. Vše probíhá na vašem počítači: malý proces překryvu čte ovládací prvky přes UI Automation a kreslí na obrazovku. Žádné síťové požadavky, žádná telemetrie.

Obrys má jen celé okno (nebo velký panel). Proč?

Aplikace nezpřístupňuje ovládací prvky uvnitř pro UI Automation — obvykle jde o vlastní ovládací prvky bez automation peer. Přepsáním OnCreateAutomationPeer v takovém prvku ho lze měřit a zpřístupníte ho i čtečkám obrazovky.

Když podržím klávesu, nic se nekreslí.

Zkontrolujte, že běží relace ladění a není pozastavená a že stavový řádek panelu ukazuje Měří se. Některý druh aplikace může být v panelu vypnutý. Stejné klávesy může používat jiný program: v nastavení zvolte jinou kombinaci.

Proč se zastaví na zarážce?

Pozastavená aplikace nemůže UI Automation odpovídat. Překryv odpočívá, dokud nepokračujete (F5).

Bude podporováno WinUI, UWP nebo MAUI?

Zatím ne. Pokud je potřebujete, napište to v repozitáři Feedback.

Mohu měřit aplikaci bez Visual Studia?

Ano: spusťte RulerSmith.Overlay.exe ze složky rozšíření. Usadí se v oznamovací oblasti a měří jakékoli okno, dokud držíte klávesu.

Kde nahlásit problém nebo navrhnout funkci?

Založte issue v repozitáři Feedback na GitHubu — jsou tam formuláře pro chyby a nápady (neveřejné názvy prosím změňte). Můžete také použít kartu Q&A na Marketplace.

Historie změn

1.0.2

1.0.1

1.0.0