From 2aedb932e572ed3f3b17c2ada30ecf37af84a334 Mon Sep 17 00:00:00 2001 From: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com> Date: Wed, 6 May 2026 19:22:26 +0200 Subject: [PATCH] Add aspect ratio checkbox to ZoomIt UI (#47695) ## Summary of the Pull Request Exposes the 16:9 aspect ratio toggle for the ZoomIt screen region recording (default: `Ctrl`+`Shift`+`5`) in the settings UI. image ## PR Checklist - [ ] 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 ## Detailed Description of the Pull Request / Additional comments ## Validation Steps Performed Checked that the toggle works and that it's compatible with the standalone ZoomIt, too. --- .../Settings.UI.Library/ZoomItProperties.cs | 2 ++ .../Settings.UI/SettingsXAML/Views/ZoomItPage.xaml | 3 +++ .../Settings.UI/Strings/en-us/Resources.resw | 3 +++ .../Settings.UI/ViewModels/ZoomItViewModel.cs | 14 ++++++++++++++ 4 files changed, 22 insertions(+) diff --git a/src/settings-ui/Settings.UI.Library/ZoomItProperties.cs b/src/settings-ui/Settings.UI.Library/ZoomItProperties.cs index bd4aa58cba..aa6811d98f 100644 --- a/src/settings-ui/Settings.UI.Library/ZoomItProperties.cs +++ b/src/settings-ui/Settings.UI.Library/ZoomItProperties.cs @@ -117,6 +117,8 @@ namespace Microsoft.PowerToys.Settings.UI.Library public IntProperty WebcamShape { get; set; } + public BoolProperty RecordAspectRatio { get; set; } + public BoolProperty BreakLockWorkstation { get; set; } } } diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/ZoomItPage.xaml b/src/settings-ui/Settings.UI/SettingsXAML/Views/ZoomItPage.xaml index 2df8ea2737..8d9b381f11 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/ZoomItPage.xaml +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/ZoomItPage.xaml @@ -272,6 +272,9 @@ TickPlacement="Outside" Value="{x:Bind ViewModel.RecordScaling, Mode=TwoWay}" /> + + + GIF diff --git a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw index a4c7f1070d..5cb03d8a7f 100644 --- a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw +++ b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw @@ -4872,6 +4872,9 @@ The break timer font matches the text font. Circle + + Lock region selection to 16:9 aspect ratio + Lock workstation during break diff --git a/src/settings-ui/Settings.UI/ViewModels/ZoomItViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/ZoomItViewModel.cs index f9d8ff4011..54da8ed01e 100644 --- a/src/settings-ui/Settings.UI/ViewModels/ZoomItViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/ZoomItViewModel.cs @@ -1113,6 +1113,20 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels } } + public bool RecordAspectRatio + { + get => _zoomItSettings.Properties.RecordAspectRatio.Value; + set + { + if (_zoomItSettings.Properties.RecordAspectRatio.Value != value) + { + _zoomItSettings.Properties.RecordAspectRatio.Value = value; + OnPropertyChanged(nameof(RecordAspectRatio)); + NotifySettingsChanged(); + } + } + } + private void NotifySettingsChanged() { global::PowerToys.ZoomItSettingsInterop.ZoomItSettings.SaveSettingsJson(