Version

DPI Scaling (CTP)

Topic Overview

Purpose

This topic catalogs Ultimate UI for Windows Forms controls that now support DPI Scaling.

DPI Awareness

Introduction

Starting with Infragistics for Ultimate UI for Windows Forms 19.1, system-wide & per-monitor dpi awareness is integrated seemlessly into our most popular controls to ensure your applications are tailored to meet your needs. There is no longer any monitor-related limitations associated with building Ultimate UI for Windows Forms applications.

In the past, symptoms such as blurriness and/or fuzziness present in large or small screens, including multiple monitor setups with various dpi and resolutions variations would impact continuity in your end user’s experience and cause unwanted consequences.

Requirements

Environment

Starting in .NET Framework 4.6 and Windows 10 you can take advantage of high dpi support. Windows 10 high-dpi support is properly implemented starting with creator’s Update 1703 and later. Note, older versions of .NET controls may not scale properly.

Configuration

Enable per-monitor DPI awareness in the app.config file. Add the following section:

In XML:

<System.Windows.Forms.ApplicationConfigurationSection>
  <add key="DpiAwareness" value="PerMonitorV2" />
</System.Windows.Forms.ApplicationConfigurationSection>

For more details you may refer to MSDN online:

The following is an example of what a control looks like dpi-unaware compared to when it is dpi-aware and scaled.

Unscaled (Default view) DPI Scaled
DPIUnscaled.png
DPIScaled.png

How to opt-in or opt-out of DPI Scaling

The DpiUtilities class has been added to the Infragistics.Win assembly with an optional property called MaxInfragisticsDpiAwareness. This property defaults to DpiUnaware.

Property Description

DpiUnaware

All Infragistics controls across the entire application will be opted out of dpi scaling.

PerMonitorDpiAware

All Infragistics controls will scale based on each detected monitor’s dpi settings.

SystemDpiAware

All Infragistics controls opt into dpi scaling based on the primary screen’s dpi settings.

Configuring MaxInfragisticsDpiAwareness in code behind.

In C#:

Infragistics.Win.DpiUtilities.MaxInfragisticsDpiAwareness = Infragistics.Win.InfragisticsDpiAwareness.SystemDpiAware;

In Visual Basic:

Infragistics.Win.DpiUtilities.MaxInfragisticsDpiAwareness = Infragistics.Win.InfragisticsDpiAwareness.SystemDpiAware