Files
PowerToys/doc/dsc/modules/MeasureTool.md
Gijs Reijn 3b6453c932 Improve DSC documentation (#42554)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request

This documentation enhances the DSC documentation by incorporating
reference documents and providing examples.

Closes #42552.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

---------

Co-authored-by: Niels Laute <niels.laute@live.nl>
2026-04-01 16:56:40 +08:00

5.7 KiB

description, ms.date, ms.topic, title
description ms.date ms.topic title
DSC configuration reference for PowerToys MeasureTool module 10/18/2025 reference MeasureTool Module

MeasureTool Module

Synopsis

Manages configuration for the Measure Tool (Screen Ruler) utility, which measures pixels on your screen.

Description

The MeasureTool module configures PowerToys Measure Tool (also known as Screen Ruler), a utility that allows you to measure the distance between two points on your screen in pixels. It's useful for designers, developers, and anyone who needs to measure UI elements or screen distances.

Properties

The MeasureTool module supports the following configurable properties:

ActivationShortcut

Sets the keyboard shortcut to activate the measure tool.

Type: object
Properties:

  • win (boolean) - Windows key modifier
  • ctrl (boolean) - Ctrl key modifier
  • alt (boolean) - Alt key modifier
  • shift (boolean) - Shift key modifier
  • code (integer) - Virtual key code
  • key (string) - Key name

Default: Win+Shift+M

ContinuousCapture

Controls whether continuous capture mode is enabled.

Type: boolean
Default: false

DrawFeetOnCross

Controls whether measurement lines extend to screen edges.

Type: boolean
Default: true

PerColorChannelEdgeDetection

Controls whether edge detection is per-color-channel or luminosity-based.

Type: boolean
Default: false

PixelTolerance

Sets the pixel tolerance for edge detection (0-255).

Type: integer
Range: 0 to 255
Default: 30

MeasureCrossColor

Sets the color of the measurement crosshair.

Type: string (hex color)
Format: "#RRGGBBAA" (with alpha)
Default: "#FF4500FF"

Examples

Example 1 - Configure activation shortcut with direct execution

This example customizes the measure tool activation shortcut.

$config = @{
    settings = @{
        properties = @{
            ActivationShortcut = @{
                win = $true
                ctrl = $false
                alt = $false
                shift = $true
                code = 77
                key = "M"
            }
        }
        name = "MeasureTool"
        version = "1.0"
    }
} | ConvertTo-Json -Depth 10 -Compress

PowerToys.DSC.exe set --resource 'settings' --module MeasureTool `
    --input $config

Example 2 - Configure measurement appearance with DSC

This example customizes the crosshair color and measurement behavior.

dsc config set --file measuretool-appearance.dsc.yaml
# measuretool-appearance.dsc.yaml
$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
resources:
  - name: Configure Measure Tool appearance
    type: Microsoft.PowerToys/MeasureToolSettings
    properties:
      settings:
        properties:
          MeasureCrossColor: "#00FF00FF"
          DrawFeetOnCross: true
          ContinuousCapture: false
        name: MeasureTool
        version: 1.0

Example 3 - Install and configure with WinGet

This example installs PowerToys and configures Measure Tool with edge detection.

winget configure winget-measuretool.yaml
# winget-measuretool.yaml
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2023/08/config/document.json
metadata:
  winget:
    processor: dscv3
resources:
  - name: Install PowerToys
    type: Microsoft.WinGet.DSC/WinGetPackage
    properties:
      id: Microsoft.PowerToys
      source: winget
  
  - name: Configure Measure Tool
    type: Microsoft.PowerToys/MeasureToolSettings
    properties:
      settings:
        properties:
          PixelTolerance: 20
          PerColorChannelEdgeDetection: true
          DrawFeetOnCross: true
        name: MeasureTool
        version: 1.0

Example 4 - High contrast configuration

This example configures for high visibility measurements.

dsc config set --file measuretool-highcontrast.dsc.yaml
# measuretool-highcontrast.dsc.yaml
$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
resources:
  - name: High contrast Measure Tool
    type: Microsoft.PowerToys/MeasureToolSettings
    properties:
      settings:
        properties:
          MeasureCrossColor: "#FFFF00FF"
          DrawFeetOnCross: true
        name: MeasureTool
        version: 1.0

Example 5 - Continuous capture mode

This example enables continuous capture for repeated measurements.

$config = @{
    settings = @{
        properties = @{
            ContinuousCapture = $true
            PixelTolerance = 25
        }
        name = "MeasureTool"
        version = "1.0"
    }
} | ConvertTo-Json -Depth 10 -Compress

PowerToys.DSC.exe set --resource 'settings' --module MeasureTool --input $config

Use cases

UI/UX design

Configure for design work with precise measurements:

resources:
  - name: Design configuration
    type: Microsoft.PowerToys/MeasureToolSettings
    properties:
      settings:
        properties:
          PixelTolerance: 15
          DrawFeetOnCross: true
        name: MeasureTool
        version: 1.0

Web development

Configure for layout debugging:

resources:
  - name: Developer configuration
    type: Microsoft.PowerToys/MeasureToolSettings
    properties:
      settings:
        properties:
          ContinuousCapture: true
          MeasureCrossColor: "#0078D7FF"
        name: MeasureTool
        version: 1.0

See also