RulerSmith
デバッグ中のアプリの上で Ctrl+Shift を押し続けると、ポインターの下のコントロールにサイズが表示され、控えめな矢印が周囲のコントロールまでの距離を示します。キーを離せば消えます。
無料 · Visual Studio 2022 と 2026 · UI は 14 言語 · テレメトリなし
RulerSmith を選ぶ理由

推測ではなく実際の境界
サイズは UI Automation (スクリーン リーダーが使うツリー) から取得するため、ピクセル定規のように影やグラデーション、アンチエイリアスにだまされることはありません。
コードに書く単位で
WPF と Web ページはデバイス非依存の単位でレイアウトされます。76 × 32 は XAML や CSS に書く値そのもので、画面のピクセル (200 % で 152 × 64) はその下に表示されます。
キーを押している間だけ
キーを押すまでは何も計算も描画もされません。オーバーレイがクリックやフォーカスを奪うことはなく、デバッガーが一時停止している間は休止します。
無料、条件なし
サブスクリプションも「Pro」版もデータ収集もなく、出力ウィンドウや起動時のメッセージもありません。唯一お願いするのは、しばらくお使いいただいた後に、Marketplace での評価です。Visual Studio 2022 と 2026、x64 と ARM64 で動作します。
機能
- ポインターの下のコントロールのサイズを種類 (Button、ComboBox…) と共に、アプリの単位で表示。拡大縮小されたディスプレイでは画面のピクセルも表示します。
- 隣のコントロールまでの間隔: 各辺で最も近いコントロール、なければコンテナーの端まで。手で引くのと同じ線です。
- モニターごとの DPI: 各モニターの拡大率を考慮し、WinForms と Win32 のアプリは DPI 対応かどうかにかかわらず、そのアプリ自身のピクセルで計測します。
- RulerSmith パネル: コントロールの名前と automation id、サイズ、位置、間隔とその終点。計測とアプリの種類ごとのスイッチ。
- 控えめな表示アニメーション: 枠線がフェードインし、続いて矢印がコントロールから伸びます。すべてを同時に表示することも、アニメーションなしにすることもできます。
- デバッグ セッションと連動: F5 で開始し、デバッグ中のアプリ (と、WebView2 や Web プロジェクトのブラウザーなど、それが開くもの) だけを計測し、セッションと共に終了します。
計測
デバッグを開始し、Ctrl+Shift を押したままアプリの上でポインターを動かします。新しいコントロールに枠線が付き、その下にサイズが表示され、間隔の矢印が隣のコントロールまで伸びます。数値はポインターに合わせてコントロールからコントロールへ移ります。
![枠線の付いた [保存] ボタンと、そのサイズ、[キャンセル]、コメント欄、ウィンドウの端までの間隔](../../rulersmith/marketplace/measure.png)
| 画面の表示 | 意味 |
|---|---|
| 細い枠線 | ポインターの下のコントロールの境界。ボタン内のテキストやアイコンはボタンとして扱われます。 |
| Button 76 × 32 152 × 64 px · 200 % | 種類とアプリの単位でのサイズ。拡大縮小されたディスプレイでは、2 行目に画面のピクセルと拡大率を表示します。 |
| 実線の矢印 | その辺で最も近いコントロールまでの間隔。接しているコントロールには矢印は表示されません。 |
| 破線の矢印 | その辺にコントロールがない場合: コンテナー (ウィンドウのクライアント領域) の端までの間隔。 |
RulerSmith パネル
デバッグ → RulerSmith パネル (表示 → その他のウィンドウ にもあります)。ツール バーで計測のオンとオフを切り替えます。これは [デバッグ] ツール バーの レイアウトの計測 と同じスイッチです。アプリの種類 (WPF、WinForms、Win32、Web) ごとにも切り替えられます。その下には最後の計測結果: コントロールの名前と automation id (XAML でコントロールを見つけるのに使えます)、サイズ、ウィンドウ内の位置、そして各間隔とその終点のコントロール。ステータス行には、何も描画されない理由 (デバッグしていない、ブレークポイントで一時停止中、計測がオフ) が表示されます。
![計測された [保存] ボタン、そのサイズと間隔を表示した RulerSmith パネル](../../rulersmith/marketplace/panel.png)
対応アプリ
RulerSmith は UI Automation を通じてコントロールを読み取るため、アプリがそこで公開しているものを計測します。標準のコントロールは既定でこれを行います。
| アプリ | 備考 |
|---|---|
| WPF | 単位はデバイス非依存です。Visual Studio がデバッグ中の WPF アプリに重ねる半透明の XAML ツール バーは無視され、タブの中身も検出されます。 |
| Windows Forms | 単位はアプリのピクセルです。DPI 対応アプリでは 1:1、非対応アプリでは Windows によって拡大されます。 |
| Win32, MFC | CreateWindow で作成したウィンドウとリソースのダイアログ: ボタン、エディット、コンボ ボックス、リスト、ツリー。 |
| Web ページ | デバッグ中の Edge、Chrome、Firefox。Visual Studio は Web プロジェクトを、すでに実行中のブラウザーで開くことがよくあります。単位は CSS ピクセルです。パネルの Web スイッチでオフにできます。 |
非対応: WinUI、UWP、MAUI。automation peer を作成しないカスタム コントロールは UI Automation から見えないため、代わりにそのコンテナーが計測されます。
設定
ツール → オプション → SmithWorks → RulerSmith。各オプションに説明があります。
| オプション | 既定値 |
|---|---|
| 押している間に計測するキー | Ctrl+Shift |
| デバッグ中に計測する | オン |
| 拡大縮小されたディスプレイで画面のピクセルを表示する | オン |
| 表示時にアニメーションする | オン |
| 間隔の矢印をコントロールから伸ばす | オン |
| Marketplace での評価をお願いする | オン |
設定は %LocalAppData%\RulerSmith に保存されます。

よくある質問
RulerSmith はデータを送信しますか?
いいえ。すべてお使いのコンピューター上で行われます。小さなオーバーレイ プロセスが UI Automation を通じてコントロールを読み取り、画面に描画します。ネットワーク要求もテレメトリもありません。
ウィンドウ全体 (または大きなパネル) だけに枠線が付きます。なぜですか?
アプリがその中のコントロールを UI Automation に公開していません。たいていは automation peer のないカスタム コントロールです。そのようなコントロールで OnCreateAutomationPeer をオーバーライドすると計測できるようになり、スクリーン リーダーからも利用できるようになります。
キーを押しても何も描画されません。
デバッグ セッションが実行中で一時停止していないこと、パネルのステータス行が 計測中 になっていることを確認してください。パネルでアプリの種類がオフになっている可能性もあります。別のプログラムが同じキーを使っている場合は、設定で別の組み合わせを選んでください。
ブレークポイントで止まるのはなぜですか?
一時停止中のアプリは UI Automation に応答できません。続行する (F5) まで、オーバーレイは休止します。
WinUI、UWP、MAUI に対応する予定はありますか?
今のところありません。必要な場合は Feedback リポジトリでお知らせください。
Visual Studio なしでアプリを計測できますか?
はい。拡張機能のフォルダーにある RulerSmith.Overlay.exe を実行してください。通知領域に常駐し、キーを押している間はどのウィンドウでも計測します。
問題の報告や機能の提案はどこでできますか?
GitHub の Feedback リポジトリで Issue を作成してください。バグとアイデア用のフォームがあります (非公開の名前は変更してください)。Marketplace の Q&A タブもご利用いただけます。
変更履歴
1.0.2
- 拡張機能が役に立った後に一度だけ、Marketplace での評価をお願いするようになりました。[後で] と [今後表示しない] があり、オプションでオフにもできます。
1.0.1
- 設定に「Marketplace で評価」リンクを追加しました。
1.0.0
- 最初の公開リリース。