dotnet / dotnet/wpf

ToolWindows that are per-monitor DPI aware do not react to DPI changes in Windows 11

Open
#10,422 3 comments 2 reactions 0 assignees View on GitHub
Investigate
Dominant language
C#
Stars
7.7k
Forks
1.3k
Avg merge
1d 11h
Merged PRs (30d)
61

Description

### Description

When a `Window` in a per-monitor DPI-aware app has `WindowStyle=ToolWindow`, that window does not react to changes in DPI on that monitor when running on Windows 11. It works on Windows 10.

### Reproduction Steps

1. Create a new WPF project.
2. Create an app manifest that declares per-monitor DPI support.
3. Create a `Window` with `WindowStyle=ToolWindow`.
4. Run the app on Windows 11.
5. Open Display Settings and change the DPI setting for the monitor with the window.
6. Notice that the WPF ToolWindow is the only window on that monitor that did not scale to the new DPI setting.

Or, use the attached example: [ToolWindowDpiExample.zip](https://github.com/user-attachments/files/18699667/ToolWindowDpiExample.zip)

### Expected behavior

Making a Window have the ToolWindow style should not prevent it from scaling to DPI changes. It should scale just like a normal window, or like a ToolWindow on Windows 10.

### Actual behavior

ToolWindows do not scale to DPI changes.

### Regression?

_No response_

### Known Workarounds

Manually resizing the window will cause the window to scale to the new DPI.

### Impact

Windows are the wrong size and scale.

### Configuration

- Windows 11 (all versions)
- .NET 6 and .NET 8
- x64, ARM64

The issue does not occur when changing to Windows 10.

### Other information

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.