LazowskiAnton · Extensions

RulerSmith

デバッグ中のアプリの上で Ctrl+Shift を押し続けると、ポインターの下のコントロールにサイズが表示され、控えめな矢印が周囲のコントロールまでの距離を示します。キーを離せば消えます。

無料 · Visual Studio 2022 と 2026 · UI は 14 言語 · テレメトリなし

RulerSmith を選ぶ理由

RulerSmith なしとありの同じフォーム: ボタンの枠線、そのサイズ、隣のコントロールまでの間隔

推測ではなく実際の境界

サイズは UI Automation (スクリーン リーダーが使うツリー) から取得するため、ピクセル定規のように影やグラデーション、アンチエイリアスにだまされることはありません。

コードに書く単位で

WPF と Web ページはデバイス非依存の単位でレイアウトされます。76 × 32 は XAML や CSS に書く値そのもので、画面のピクセル (200 % で 152 × 64) はその下に表示されます。

キーを押している間だけ

キーを押すまでは何も計算も描画もされません。オーバーレイがクリックやフォーカスを奪うことはなく、デバッガーが一時停止している間は休止します。

無料、条件なし

サブスクリプションも「Pro」版もデータ収集もなく、出力ウィンドウや起動時のメッセージもありません。唯一お願いするのは、しばらくお使いいただいた後に、Marketplace での評価です。Visual Studio 2022 と 2026、x64 と ARM64 で動作します。

機能

計測

デバッグを開始し、Ctrl+Shift を押したままアプリの上でポインターを動かします。新しいコントロールに枠線が付き、その下にサイズが表示され、間隔の矢印が隣のコントロールまで伸びます。数値はポインターに合わせてコントロールからコントロールへ移ります。

枠線の付いた [保存] ボタンと、そのサイズ、[キャンセル]、コメント欄、ウィンドウの端までの間隔
画面の表示意味
細い枠線ポインターの下のコントロールの境界。ボタン内のテキストやアイコンはボタンとして扱われます。
Button 76 × 32
152 × 64 px · 200 %
種類とアプリの単位でのサイズ。拡大縮小されたディスプレイでは、2 行目に画面のピクセルと拡大率を表示します。
実線の矢印その辺で最も近いコントロールまでの間隔。接しているコントロールには矢印は表示されません。
破線の矢印その辺にコントロールがない場合: コンテナー (ウィンドウのクライアント領域) の端までの間隔。

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 で作成したウィンドウとリソースのダイアログ: ボタン、エディット、コンボ ボックス、リスト、ツリー。
Web ページデバッグ中の Edge、Chrome、Firefox。Visual Studio は Web プロジェクトを、すでに実行中のブラウザーで開くことがよくあります。単位は 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 リポジトリで Issue を作成してください。バグとアイデア用のフォームがあります (非公開の名前は変更してください)。Marketplace の Q&A タブもご利用いただけます。

変更履歴

1.0.2

1.0.1

1.0.0