RulerSmith
在正在偵錯的應用程式上按住 Ctrl+Shift:指標下的控制項會顯示其大小,柔和的箭頭顯示與周圍控制項的距離。放開按鍵,一切隨即消失。
免費 · Visual Studio 2022 和 2026 · 14 種介面語言 · 無遙測
為什麼選擇 RulerSmith

真實的界限,而非猜測
大小來自 UI Automation(螢幕助讀程式使用的同一棵樹),因此陰影、漸層和消除鋸齒不會像騙過像素尺規那樣騙過它。
您所寫的單位
WPF 和網頁以與裝置無關的單位配置版面:76 × 32 就是您在 XAML 或 CSS 中寫的值,螢幕像素(200 % 下為 152 × 64)顯示在其下方。
只在按住按鍵時運作
在您按住按鍵之前,不進行任何計算或繪製。覆疊層從不接收按一下或焦點,偵錯工具暫停時它也會停下。
免費,沒有附加條件
沒有訂閱、沒有「Pro」版、不收集資料,也不會在「輸出」視窗或啟動時顯示訊息。我們唯一的請求是:在你用過一段時間之後,到 Marketplace 給個評分。支援 Visual Studio 2022 和 2026,x64 和 ARM64。
功能
- 指標下控制項的大小及其類型(Button、ComboBox…),以應用程式的單位顯示,在縮放的顯示器上還顯示螢幕像素。
- 與相鄰控制項的間距:每一側最近的控制項,沒有控制項時則為容器的邊緣——就是您會手動畫出的那些線。
- 每個監視器的 DPI:考慮每個監視器的縮放比例;WinForms 和 Win32 應用程式以其自身的像素測量,無論是否支援 DPI 感知。
- RulerSmith 面板:控制項的名稱和自動化識別碼、大小、位置以及間距和它們的終點;還有測量開關和每類應用程式的開關。
- 柔和的出現效果:外框淡入,然後箭頭從控制項向外延伸——也可以全部同時出現,或完全不用動畫。
- 與偵錯工作階段繫結:按 F5 啟動,只測量正在偵錯的應用程式(以及它開啟的內容,例如 WebView2 或 Web 專案的瀏覽器),隨工作階段結束而停止。
測量
開始偵錯,按住 Ctrl+Shift,將指標移到應用程式上。新的控制項會顯示外框,其下方顯示大小,間距箭頭延伸到相鄰控制項;數字隨指標從一個控制項移到另一個控制項。

| 螢幕上顯示 | 意義 |
|---|---|
| 細外框 | 指標下控制項的界限。按鈕內的文字或圖示算作按鈕本身。 |
| Button 76 × 32 152 × 64 px · 200 % | 類型和以應用程式單位表示的大小;在縮放的顯示器上,第二行顯示螢幕像素和縮放比例。 |
| 實線箭頭 | 到該側最近控制項的間距。相互接觸的控制項不顯示箭頭。 |
| 虛線箭頭 | 該側沒有控制項:到容器邊緣(視窗的工作區)的間距。 |
RulerSmith 面板
偵錯 → RulerSmith 面板(也位於 檢視 → 其他視窗)。工具列可開啟和關閉測量——與「偵錯」工具列上的 測量版面配置 是同一個開關——也可以分別控制每類應用程式:WPF、WinForms、Win32、Web。下方是最近一次測量:控制項的名稱和自動化識別碼(可據此在 XAML 中找到該控制項)、大小、在視窗中的位置,以及每個間距和它終止於的控制項。狀態列說明為什麼沒有繪製任何內容:未在偵錯、在中斷點暫停,或測量已關閉。

支援哪些應用程式
RulerSmith 透過 UI Automation 讀取控制項,因此它測量的是應用程式在其中公開的內容——標準控制項預設就會公開。
| 應用程式 | 說明 |
|---|---|
| WPF | 單位與裝置無關。Visual Studio 覆疊在正在偵錯的 WPF 應用程式上的半透明 XAML 工具列會被略過;索引標籤中的內容可以找到。 |
| Windows Forms | 單位是應用程式的像素:支援 DPI 感知的應用程式為 1:1,不支援的應用程式由 Windows 延展。 |
| Win32, MFC | 使用 CreateWindow 建立的視窗和來自資源的對話方塊:按鈕、編輯方塊、下拉式方塊、清單、樹狀結構。 |
| 網頁 | 偵錯時的 Edge、Chrome 和 Firefox——Visual Studio 經常在已執行的瀏覽器中開啟 Web 專案。單位是 CSS 像素。面板中的 Web 開關可將其關閉。 |
不支援:WinUI、UWP 和 MAUI。不建立自動化對等的自訂控制項對 UI Automation 不可見,此時測量的是它的容器。
設定
工具 → 選項 → SmithWorks → RulerSmith。每個選項都有說明。
| 選項 | 預設值 |
|---|---|
| 按住以測量 | Ctrl+Shift |
| 偵錯時測量 | 開啟 |
| 在縮放的顯示器上顯示螢幕像素 | 開啟 |
| 出現時使用動畫 | 開啟 |
| 間距箭頭從控制項向外延伸 | 開啟 |
| 請求在 Marketplace 上評分 | 開啟 |
設定儲存在 %LocalAppData%\RulerSmith 中。

常見問題
RulerSmith 會傳送資料嗎?
不會。一切都在您的電腦上進行:一個小型覆疊層處理序透過 UI Automation 讀取控制項並在螢幕上繪製。沒有網路要求,沒有遙測。
為什麼只有整個視窗(或一個大面板)顯示外框?
應用程式沒有向 UI Automation 公開其中的控制項——通常是沒有自動化對等的自訂控制項。在這類控制項中覆寫 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
- 首個公開版本。