RulerSmith
Segure Ctrl+Shift sobre o aplicativo que você está depurando: o controle sob o ponteiro mostra seu tamanho, e setas suaves mostram as distâncias até os controles ao redor. Solte as teclas e tudo some.
Gratuito · Visual Studio 2022 e 2026 · 14 idiomas de interface · sem telemetria
Por que o RulerSmith

Limites reais, não um palpite
Os tamanhos vêm da UI Automation — a árvore que os leitores de tela usam —, então sombras, gradientes e suavização de serrilhado não a enganam, como enganam uma régua de pixels.
As unidades que você escreve
WPF e páginas da Web usam unidades independentes de dispositivo: 76 × 32 é o que você coloca no XAML ou no CSS, e os pixels de tela (152 × 64 a 200 %) aparecem logo abaixo.
Só enquanto a tecla está pressionada
Nada é calculado nem desenhado até você segurar a tecla. A sobreposição nunca captura um clique nem o foco, e descansa enquanto o depurador está pausado.
Gratuito, sem pegadinhas
Sem assinatura, sem versão “pro”, sem coleta de dados, sem mensagens na janela Saída ou na inicialização. A única coisa que vamos pedir — depois que você a tiver usado por um tempo — é uma avaliação no Marketplace. Funciona no Visual Studio 2022 e 2026, x64 e ARM64.
Recursos
- O tamanho do controle sob o ponteiro com seu tipo (Button, ComboBox…), nas unidades do aplicativo e em pixels de tela em um monitor com escala.
- Espaçamentos até os vizinhos: o controle mais próximo de cada lado ou, quando não há nenhum, a borda do contêiner — as linhas que você desenharia à mão.
- DPI por monitor: a escala de cada monitor é levada em conta; aplicativos WinForms e Win32 são medidos em seus próprios pixels, com reconhecimento de DPI ou não.
- O painel do RulerSmith: o nome e o automation id do controle, seu tamanho, posição e espaçamentos com o ponto em que terminam; botões para ligar a medição e cada tipo de aplicativo.
- Uma entrada suave: o contorno aparece aos poucos e depois as setas crescem a partir do controle — ou tudo de uma vez, ou sem animação nenhuma.
- Ligado à sessão de depuração: começa com F5, mede só o aplicativo depurado (e o que ele abre, como o WebView2 ou o navegador de um projeto Web) e para junto com a sessão.
Medição
Inicie a depuração, segure Ctrl+Shift e mova o ponteiro sobre o aplicativo. Um novo controle ganha um contorno, seu tamanho aparece abaixo dele e os espaçamentos correm até os vizinhos; os números acompanham o ponteiro de controle em controle.

| Na tela | Significado |
|---|---|
| Contorno fino | Os limites do controle sob o ponteiro. Texto ou ícone dentro de um botão conta como o botão. |
| Button 76 × 32 152 × 64 px · 200 % | O tipo e o tamanho nas unidades do aplicativo; em um monitor com escala, os pixels de tela e a escala em uma segunda linha. |
| Seta contínua | O espaçamento até o controle mais próximo daquele lado. Controles encostados não mostram seta. |
| Seta tracejada | Nenhum controle daquele lado: o espaçamento até a borda do contêiner (a área cliente de uma janela). |
O painel do RulerSmith
Depurar → Painel do RulerSmith (também em Exibir → Outras Janelas). A barra de ferramentas liga e desliga a medição — o mesmo botão que Medir Layout na barra de ferramentas Depurar — e cada tipo de aplicativo separadamente: WPF, WinForms, Win32, Web. Abaixo dela, a última medição: o nome e o automation id do controle (com ele você encontra o controle no XAML), seu tamanho, sua posição na janela e cada espaçamento com o controle em que termina. A linha de status explica por que nada é desenhado: sem depuração, pausado em um ponto de interrupção ou medição desligada.

Quais aplicativos
O RulerSmith lê os controles pela UI Automation, então mede o que o aplicativo expõe ali — e os controles padrão já fazem isso de fábrica.
| Aplicativo | Observações |
|---|---|
| WPF | As unidades são independentes de dispositivo. A barra de ferramentas transparente do XAML que o Visual Studio sobrepõe a um aplicativo WPF depurado é ignorada; o conteúdo das guias é encontrado. |
| Windows Forms | As unidades são os pixels do aplicativo: 1:1 para um aplicativo com reconhecimento de DPI, esticados pelo Windows para um que não tem. |
| Win32, MFC | Janelas criadas com CreateWindow e caixas de diálogo de recursos: botões, caixas de edição, caixas de combinação, listas, árvores. |
| Páginas da Web | Edge, Chrome e Firefox durante a depuração — o Visual Studio muitas vezes abre um projeto Web no navegador que já está em execução. As unidades são pixels CSS. O botão Web no painel as desativa. |
Sem suporte: WinUI, UWP e MAUI. Um controle personalizado que não cria um automation peer é invisível para a UI Automation, e o contêiner dele é medido no lugar.
Configurações
Ferramentas → Opções → SmithWorks → RulerSmith. Cada opção tem uma descrição.
| Opção | Padrão |
|---|---|
| Segure para medir | Ctrl+Shift |
| Medir durante a depuração | ativado |
| Mostrar pixels de tela em monitores com escala | ativado |
| Animar a entrada | ativado |
| Fazer as setas de espaçamento crescerem a partir do controle | ativado |
| Pedir uma avaliação no Marketplace | ativado |
As configurações ficam em %LocalAppData%\RulerSmith.

Perguntas frequentes
O RulerSmith envia algum dado?
Não. Tudo acontece no seu computador: um pequeno processo de sobreposição lê os controles pela UI Automation e desenha na tela. Nenhuma solicitação de rede, nenhuma telemetria.
Só a janela inteira (ou um painel grande) ganha contorno. Por quê?
O aplicativo não expõe os controles internos à UI Automation — geralmente são controles personalizados sem automation peer. Substituir OnCreateAutomationPeer nesse controle o torna mensurável, e também acessível a leitores de tela.
Nada é desenhado quando seguro a tecla.
Verifique se uma sessão de depuração está em execução e não pausada, e se a linha de status do painel diz Medindo. Um tipo de aplicativo pode estar desativado no painel. Outro programa pode usar as mesmas teclas: escolha outra combinação nas configurações.
Por que ele para em um ponto de interrupção?
Um aplicativo pausado não consegue responder à UI Automation. A sobreposição descansa até você continuar (F5).
WinUI, UWP ou MAUI serão suportados?
Por enquanto, não. Se você precisar deles, diga isso no repositório Feedback.
Posso medir um aplicativo sem o Visual Studio?
Sim: execute RulerSmith.Overlay.exe a partir da pasta da extensão. Ele fica na bandeja do sistema e mede qualquer janela enquanto a tecla está pressionada.
Onde relato um problema ou sugiro um recurso?
Abra um issue no repositório Feedback no GitHub — há formulários para bugs e ideias (troque os nomes privados). Você também pode usar a guia Q&A no Marketplace.
Histórico de alterações
1.0.2
- Um pedido único de avaliação no Marketplace, depois que a extensão tiver sido útil — com Mais tarde e Não perguntar novamente, e uma opção para desativá-lo.
1.0.1
- Link “Avaliar no Marketplace” nas configurações.
1.0.0
- Primeira versão pública.