|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
#if WINFORMS_ANALYZERS
namespace System.Windows.Forms.Analyzers;
#else
namespace System.Windows.Forms;
#endif
/// <summary>
/// Specifies the different high DPI modes that can be applied to an application.
/// </summary>
/// <remarks>
/// <para>
/// Specifying the high DPI mode is dependent on the OS version of the machine you're running your application on.
/// Setting the high DPI mode will work on machines running Windows 10 Creators Update (version 1703) or later versions.
/// </para>
/// <para>
/// Changing the DPI mode while the application is running doesn't impact scaling if you're using the `PerMonitor` value.
/// If there is more than one monitor attached and their DPI settings are different, the DPI may change when the window
/// is moved from one monitor to the other.
/// In this case, the application rescales according to the new monitor's DPI settings.
/// Alternatively, the DPI of a window can be changed when the OS scaling setting is changed for the monitor the window is on.
/// </para>
/// </remarks>
public enum HighDpiMode
{
/// <summary>
/// The window does not scale for DPI changes and always assumes a scale factor of 100%.
/// </summary>
DpiUnaware,
/// <summary>
/// The window queries for the DPI of the primary monitor once and uses this for the application on all monitors.
/// </summary>
SystemAware,
/// <summary>
/// The window checks for DPI when it's created and adjusts scale factor when the DPI changes.
/// </summary>
PerMonitor,
/// <summary>
/// Similar to <see cref="PerMonitor"/>, but enables child window DPI change notification, improved scaling of
/// comctl32 controls and dialog scaling.
/// </summary>
PerMonitorV2,
/// <summary>
/// Similar to <see cref="DpiUnaware"/>, but improves the quality of GDI/GDI+ based content.
/// </summary>
DpiUnawareGdiScaled
}
|