PowerToys/doc/devdocs/settingsv2/ui-architecture.md
Alekhya 18eb6b4ffd
Dev documentation of SettingsV2 (#7335)
* created a folder for settings and added an overview, hotkey information

* basic structure for communication between settings and runner

* Added information about the IPC communication between settings and runner

* Added information about the communication between the settings process and modules

* Added details on backward compatibility

* brief overview on settings utils

* added an overview of the viewmodels and anomalies

* minor modifications

* Settings v2 dev docs (#7334)

* Added settings architecture and tech stack dev docs

* Added telemetry and updated architecture docs for settings v2

* Fix image link in ui_architecture markdown

* Added table of contents for settings v2

* Correct file path for ui architecture image

* nit fix in table of contents heading

* Add doc for xaml island tweaks

Co-authored-by: Divyansh Srivastava <somm14divi@gmail.com>
2020-10-20 14:28:06 -07:00

1.4 KiB

UI Architecture

The UI code is distributed between two projects: Microsoft.PowerToys.Settings.UI.Runner and Microsoft.PowerToys.Settings.UI. Microsoft.PowerToys.Settings.UI.Runner is a WPF .net core application. It contains the parent display window and corresponding code is present in MainWindow.xaml. Microsoft.PowerToys.Settings.UI is UWP applications and contains views for base navigation and modules. Fig 1 provides a description of the UI controls hierarchy and each of the controls have been summarized below :

  • MainWindow.xaml is the parent WPF control.
  • WindowsXamlHost control is used to host UWP control to MainWindow.xaml parent control.
  • ShellPage.xaml is a UWP control, consisting of a side navigation panel with an icon for each module. Clicking on a module icon loads the corresponding setting.json file and displays the data in the UI.

Settings UI architecture Fig 1: UI Architecture for settingsv2