LazowskiAnton · Extensions

RulerSmith

디버깅 중인 앱 위에서 Ctrl+Shift를 누르고 있으면 포인터 아래 컨트롤에 크기가 표시되고, 부드러운 화살표가 주변 컨트롤까지의 거리를 보여 줍니다. 키를 떼면 사라집니다.

무료 · Visual Studio 2022 및 2026 · UI 14개 언어 · 원격 분석 없음

RulerSmith를 쓰는 이유

RulerSmith가 없을 때와 있을 때의 같은 폼: 단추의 윤곽선, 크기, 이웃 컨트롤까지의 간격

추측이 아닌 실제 경계

크기는 화면 읽기 프로그램이 사용하는 트리인 UI Automation에서 가져오므로, 픽셀 눈금자처럼 그림자, 그라데이션, 앤티앨리어싱에 속지 않습니다.

코드에 쓰는 단위 그대로

WPF와 웹 페이지는 장치 독립적 단위로 레이아웃됩니다. 76 × 32는 XAML이나 CSS에 쓰는 값 그대로이며, 화면 픽셀(200 %에서 152 × 64)은 그 아래에 표시됩니다.

키를 누르고 있는 동안만

키를 누르기 전에는 아무것도 계산하거나 그리지 않습니다. 오버레이는 클릭이나 포커스를 가져가지 않으며, 디버거가 일시 중지된 동안에는 쉽니다.

조건 없는 무료

구독, ‘Pro’ 버전, 데이터 수집이 없고 출력 창이나 시작 시 메시지도 없습니다. 부탁드리는 것은 단 하나, 어느 정도 사용해 보신 뒤 Marketplace에 평가를 남겨 주시는 것뿐입니다. Visual Studio 2022 및 2026, x64 및 ARM64에서 작동합니다.

기능

측정

디버깅을 시작하고 Ctrl+Shift를 누른 채 앱 위로 포인터를 움직이세요. 새 컨트롤에 윤곽선이 그려지고, 그 아래에 크기가 나타나며, 간격 화살표가 이웃 컨트롤까지 뻗어 나갑니다. 숫자는 포인터를 따라 컨트롤에서 컨트롤로 이동합니다.

윤곽선이 그려진 저장 단추와 그 크기, 취소 단추·댓글 상자·창 가장자리까지의 간격
화면 표시의미
가는 윤곽선포인터 아래 컨트롤의 경계. 단추 안의 텍스트나 아이콘은 단추로 간주됩니다.
Button 76 × 32
152 × 64 px · 200 %
종류와 앱 단위의 크기. 배율이 조정된 디스플레이에서는 둘째 줄에 화면 픽셀과 배율이 표시됩니다.
실선 화살표그 방향에서 가장 가까운 컨트롤까지의 간격. 맞닿은 컨트롤에는 화살표가 표시되지 않습니다.
점선 화살표그 방향에 컨트롤이 없음: 컨테이너(창의 클라이언트 영역) 가장자리까지의 간격.

RulerSmith 패널

디버그 → RulerSmith 패널(보기 → 다른 창에도 있음). 도구 모음에서 측정을 켜고 끕니다 — 디버그 도구 모음의 레이아웃 측정과 같은 스위치입니다 — 앱 종류별로도 따로 켜고 끌 수 있습니다: WPF, WinForms, Win32, Web. 그 아래에는 마지막 측정 결과가 표시됩니다: 컨트롤의 이름과 automation id(XAML에서 컨트롤을 찾을 때 유용), 크기, 창 내 위치, 그리고 각 간격과 그 끝에 있는 컨트롤. 상태 줄은 아무것도 그려지지 않는 이유를 알려 줍니다: 디버깅 중 아님, 중단점에서 일시 중지됨, 측정 꺼짐.

측정된 저장 단추와 그 크기, 간격이 표시된 RulerSmith 패널

지원 앱

RulerSmith는 UI Automation을 통해 컨트롤을 읽으므로, 앱이 거기에 노출하는 것을 측정합니다 — 표준 컨트롤은 기본적으로 노출합니다.

앱참고
WPF단위는 장치 독립적입니다. Visual Studio가 디버깅 중인 WPF 앱 위에 띄우는 반투명 XAML 도구 모음은 건너뛰며, 탭의 내용도 찾아냅니다.
Windows Forms단위는 앱의 픽셀입니다: DPI 인식 앱은 1:1, 그렇지 않은 앱은 Windows가 늘려서 표시합니다.
Win32, MFCCreateWindow로 만든 창과 리소스의 대화 상자: 단추, 편집 상자, 콤보 상자, 목록, 트리.
웹 페이지디버깅 중인 Edge, Chrome, Firefox — Visual Studio는 웹 프로젝트를 이미 실행 중인 브라우저에서 여는 경우가 많습니다. 단위는 CSS 픽셀입니다. 패널의 Web 스위치로 끌 수 있습니다.

지원되지 않음: WinUI, UWP, MAUI. automation peer를 만들지 않는 사용자 지정 컨트롤은 UI Automation에 보이지 않으므로 대신 그 컨테이너가 측정됩니다.

설정

도구 → 옵션 → SmithWorks → RulerSmith. 모든 옵션에 설명이 있습니다.

옵션기본값
누르고 있는 동안 측정Ctrl+Shift
디버깅 중 측정켜짐
배율이 조정된 디스플레이에서 화면 픽셀 표시켜짐
나타날 때 애니메이션 효과 사용켜짐
간격 화살표를 컨트롤에서 뻗어 나오게 표시켜짐
Marketplace 평가 요청켜짐

설정은 %LocalAppData%\RulerSmith에 저장됩니다.

RulerSmith 옵션 페이지
옵션 페이지.

자주 묻는 질문

RulerSmith는 데이터를 전송하나요?

아니요. 모든 작업은 사용자의 컴퓨터에서 이루어집니다: 작은 오버레이 프로세스가 UI Automation을 통해 컨트롤을 읽고 화면에 그립니다. 네트워크 요청도, 원격 분석도 없습니다.

창 전체(또는 큰 패널)에만 윤곽선이 그려집니다. 왜 그런가요?

앱이 내부 컨트롤을 UI Automation에 노출하지 않기 때문입니다 — 대개 automation peer가 없는 사용자 지정 컨트롤입니다. 그런 컨트롤에서 OnCreateAutomationPeer를 재정의하면 측정할 수 있게 되고, 화면 읽기 프로그램에서도 접근할 수 있게 됩니다.

키를 눌러도 아무것도 그려지지 않습니다.

디버그 세션이 실행 중이고 일시 중지되지 않았는지, 패널의 상태 줄에 측정 중이라고 표시되는지 확인하세요. 패널에서 앱 종류가 꺼져 있을 수도 있습니다. 다른 프로그램이 같은 키를 사용할 수도 있으니, 설정에서 다른 조합을 선택하세요.

중단점에서 왜 멈추나요?

일시 중지된 앱은 UI Automation에 응답할 수 없습니다. 계속(F5)할 때까지 오버레이는 쉽니다.

WinUI, UWP 또는 MAUI도 지원될 예정인가요?

지금은 아닙니다. 필요하다면 Feedback 리포지토리에 알려 주세요.

Visual Studio 없이 앱을 측정할 수 있나요?

예: 확장 폴더에서 RulerSmith.Overlay.exe를 실행하세요. 알림 영역에 머물면서 키를 누르고 있는 동안 어떤 창이든 측정합니다.

문제를 보고하거나 기능을 제안하려면 어디로 가야 하나요?

GitHub의 Feedback 리포지토리에 이슈를 등록하세요. 버그와 아이디어를 위한 양식이 있습니다(비공개 이름은 바꿔 주세요). Marketplace의 Q&A 탭을 이용할 수도 있습니다.

변경 내역

1.0.2

1.0.1

1.0.0