[Feature Request] Add option to force 100% UI rendering in WPF regardless of system DPI scaling
- Dominant language
- C#
- Stars
- 7.7k
- Forks
- 1.3k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 61
Description
In modern enterprise environments, it's common to use laptops with a default display scaling of **150%**, while external monitors remain at **100%**. This mixed-DPI setup—despite having the same resolution—causes WPF applications to behave inconsistently:
- UI elements are resized unexpectedly
- Text becomes oversized or blurry
- Layouts break or overflow
- Critical functionality becomes inaccessible
This severely impacts usability, maintainability, and business productivity.
---
### Request:
Please add a manifest setting or API that allows developers to **force WPF applications to render at 100% scale**, regardless of the system's DPI settings or PerMonitorV2 behavior.
#### Suggested options:
- Manifest tag:
```xml
fixed96dpi
```
- API call:
```csharp
SetProcessDpiFixed96(); // Forces 96 DPI rendering
```
- Windows setting:
“Allow apps to ignore display scaling” toggle for advanced users
---
### Why this matters:
- Current DPI Awareness modes (`system`, `perMonitor`, `perMonitorV2`) do not allow full control over rendering scale
- Even with `SetProcessDpiAwareness()` or `SetProcessDPIAware()`, Windows 11 still enforces DPI scaling when dragging windows between monitors
- Developers have no reliable way to ensure consistent UI rendering across mixed-DPI environments
---
### Impact:
This issue affects thousands of enterprise applications and users globally. It causes visual inconsistencies, functional errors, and user frustration—ultimately hindering productivity and contributing to economic inefficiency.
---
Contributor guide
Assessment
This issue has not been assessed yet.