It seems 4.7 mostly has DPI improvements for WinForms and 4.8 provides improvements for WPF.
Note this quote from the 4.7 blog post:
You must target and (re)compile your application with .NET Framework 4.7, not just run on it. Applications that run on the .NET Framework 4.7 but target .NET Framework 4.5 or 4.6, for example, will not get the new improvements.
So it looks like if we have a .NET 4.7/4.8 project using Syncfusion controls built with .NET 4.6 we won't be able to take advantage of these enhancements. So it would be beneficial if Syncfusion would release newer versions of their controls built on .NET 4.7 and .NET 4.8.
FPFarjana Parveen Ayubb Syncfusion Team July 2, 2019 04:42 AM
Thank you for using Syncfusion controls.
You have migrated to 4.7 or 4.8 .Net framework for high DPI support. This high DPI support can be available in 4.6 .Net framework for all Syncfusion controls by default. i.e. the elements size will be adjusted based on the DPI settings of the system.
For example, for the Syncfusion grid, the row height will be adjusted based on the DPI settings. So you can use the Syncfusion 4.6 assemblies in 4.7 or 4.8 Target .Net framework in visual studio. We regret to let you know that currently we do not have any plan nearly to provide the support for .Net framework 4.7 or 4.8 support for the Syncfusion controls.
Please let us know, if you are facing any kind of issue while using the Syncfusion 4.6 assemblies in 4.7 or 4.8 Target .Net framework.
Please let us know if you need further assistance on this.
Farjana Parveen A
TTtttmackJuly 2, 2019 10:31 AM
Thanks for your reply.
There are 4 levels of DPI awareness in Windows applications:
System DPI aware
Per-Monitor DPI aware v1
Per-Monitor DPI aware v2
The Syncfusion controls created using .NET 4.6 and below work great for System DPI aware apps. However, per-monitor DPI aware apps are quite new and Microsoft is constantly improving support for them (both at the operating system level in new releases of Windows 10 and in newer versions of .NET Framework).
If an app is per-monitor DPI aware, then if you have multiple displays with different scaling factors (ex. suppose display1 is a 23" 1080p monitor using 100% scaling and display2 is a 27" 4K monitor using 200% scaling) then a form that is dragged from one screen to the other will resize but it will still remain sharp in appearance (in contrast to system DPI aware apps where bitmap scaling is used and can cause a blurry appearance). Some of this resizing is done automatically by the operating system and other stuff must be manually performed via code (especially for WinForms).
.NET Framework 4.7 and 4.8 have enhancements that allow for better support for per-monitor v2 applications. If Syncfusion were to build its controls using .NET Framework 4.7/4.8, it would better allow developers to create apps that are per-monitor v1/v2 DPI aware while being able to take advantage of all of the improvements that Microsoft has recently implemented.
FPFarjana Parveen Ayubb Syncfusion Team July 3, 2019 07:39 AM
Thanks for your update.
We have analyzing your reported query at our end. We will get back to you with the complete details on this at 5th July, 2019.
Thanks for your patience until then.
Farjana Parveen A
FPFarjana Parveen Ayubb Syncfusion Team July 6, 2019 06:43 AM
Thanks for your patience and details.
Yes. .NET 4.7/4.8 has the better improvement towards the DPI aware support, especially PerMonitor support. Please refer the below link that they improve the DPI aware for their framework controls and some other improvements,
Please refer the important points of their side changes,
Improvements in the scaling and layout of a number of Windows Forms controls, such asthe MonthCalendar control and the CheckedListBox control.
Single-pass scaling. In the .NET Framework 4.6 and earlier versions, scaling was performed through multiple passes, which caused some controls to be scaled more than was necessary.
Support for dynamic DPI scenarios in which the user changes the DPI or scale factor after a Windows Forms application has been launched.
As per their (Microsoft) side changes, they have provided the DPI switching support (i.e PerMonitor) to notify the entire windows forms application’s DPI is changed. So, each and every controls present in the Windows Forms application gets notified and redrawn entirely if they moved from one scaling machine to another (i.e 150% scaling machine to 200% scaling). Our Syncfusion controls are fully designed with the DPI aware. We are rendering each and every present in every controls based on the current DPI values. So, our controls will be drawn properly when the DPI environment gets changed.
So, you won’t need the 4.7 framework dlls for Syncfusion controls. It will automatically work whenever DPI environment changed. You can just develop your Windows Forms application with the 4.7 framework.
Please let us know if you are facing any issues while using high DPI.
Farjana Parveen A
TTtttmackJuly 11, 2019 11:50 AM
Thanks for your reply, however I do believe that the Syncfusion .NET 4.6 controls are missing essential functionality for per-monitor dpi-aware programs.
Specifically .NET 4.7 introduced these new events:
In order for a WinForms app to be per-monitor dpi aware, one would need to listen for the Form.DpiChanged event and then manually scale some (or all) of the form's child controls and fonts as well as resize the form itself. Since Syncfusion is still only on .NET 4.6, the Syncfusion MetroForm, Office2007Form and Office2010Form will not have access to this event so a per-monitor dpi aware application cannot be developed using those forms. The only way a per-monitor aware app could be developed with Syncfusion controls would be to put the Syncfusion controls in the native System.Windows.Forms.Form class (instead of a Syncfusion form like MetroForm) since, unlike the Syncfusion MetroForm, it has access to the aforementioned events.
DBDinesh Babu Yadav Syncfusion Team July 12, 2019 07:13 AM
Thanks for the update.
We are currently analyzing the reported query at our end with high priority. We will update you with more details on 15th July,2019.
We will appreciate your patience until then.
Dinesh Babu Yadav.
SPSubburaj Pandian Veluchamy Syncfusion Team July 15, 2019 08:35 AM
Thank you for your patience.
We have considered to provide this “4.7 .Net framework support for WinForms controls” and logged feature request for the same. We will implement this feature in any of our upcoming release.
At the planning stage for every release cycle, we review all open features and identify features for implementation based on specific parameters including product vision, technological feasibility, and customer interest. We will let you know when this feature is implemented. We appreciate your patience until then.
We are always trying to make our products better and feature requests like yours are a key part of our product growth efforts.
You can also communicate with us regarding the open features any time using our Feature Report page.