Technical Overview - Remi05/outlines GitHub Wiki

How it works

Outlines displays a borderless and titlebar-less transparent window above all other apps on which it renders useful UI properties. It obtains those UI properties using Windows UI Automation APIs. Whenever the user clicks or hovers at a location for a period of time, Outlines queries the UI element at that location on the screen and presents its properties.

Tech Stack

C#

  • Great Visual Studio integration
  • Fast development speed
  • Great testability (test framework + VS integration)
  • Good CI pipelines options (can be built from GitHub Actions)

WPF

  • Allows for transparent windows
  • Easy to hide window titlebar and border
  • (Low-level) Win32 APIs access

UIA (Windows UI Automation)

  • Allows for fetching elements from cursor position
  • Allows for obtaining element position and dimensions
  • Allows for obtaining text element properties (font family, font size, font weight, foreground color)

.NET Core