We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

WinForms controls in .NET Framework 4.7 and 4.8

Hi there, are there any plans to provide Syncfusion Winforms controls in .NET 4.7 or 4.8?

According to this link, the newest version of your controls is 4.6 and they will still work in projects targeting 4.7 or 4.8: https://help.syncfusion.com/windowsforms/dotnet-framework-support-history

However, with .NET Framework 4.7 and 4.8 there seem to be significant enhancements for DPI awareness.

https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-7/
https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8/

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.




9 Replies

FP Farjana Parveen Ayubb Syncfusion Team July 2, 2019 09:42 AM UTC

Hi Taylour,  
 
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.  
 
Regards,  
Farjana Parveen A 



TT tttmack July 2, 2019 03:31 PM UTC

Hi Farjana,

Thanks for your reply.

There are 4 levels of DPI awareness in Windows applications: 
  1. DPI unaware
  2. System DPI aware
  3. Per-Monitor DPI aware v1
  4. 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.

Kind Regards,
-Taylour


FP Farjana Parveen Ayubb Syncfusion Team July 3, 2019 12:39 PM UTC

Hi Taylour, 
  
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. 
  
Regards, 
Farjana Parveen A 



FP Farjana Parveen Ayubb Syncfusion Team July 6, 2019 11:43 AM UTC

Hi Taylour, 
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. 
Regards, 
Farjana Parveen A 



TT tttmack July 11, 2019 04:50 PM UTC

Hi Farjana,

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. 

Kind Regards,
-Taylour


DB Dinesh Babu Yadav Syncfusion Team July 12, 2019 12:13 PM UTC

Hi Taylour, 
 
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. 
 
Regards, 
Dinesh Babu Yadav. 
 



SP Subburaj Pandian Veluchamy Syncfusion Team July 15, 2019 01:35 PM UTC

Hi Taylour, 
  
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.    
 
    
If you have any more specification/suggestions to the feature request, you can add it as a comment in the portal.  
  
Regards,
Subburaj Pandian V  



TT tttmack July 11, 2024 06:28 PM UTC

Hi Manikanda,

Thank you for your benchmark code. I ran your samples as well as some that I created myself on a Surface Pro X (with an ARM Snapdragon SQ1 processor), and I only noticed minor differences in performance between .NET Framework versions. This leads me to believe that the emulation layer is actually quite optimized and the difference between using 4.8.1 vs. older versions is not very noticeable, at least with the SQ1 processor (the newer Snapdragon X processors potentially may be able to better optimize performance using 4.8.1).

However, the issue still remains that 4.6.2 does not have the high-DPI enhancements that were introduced for both WinForms and WPF. Creating a 4.8.0 build of Syncfusion would add this functionality.


WinForms Enhancements:

Reference: https://learn.microsoft.com/en-us/dotnet/desktop/winforms/high-dpi-support-in-windows-forms?view=netframeworkdesktop-4.8

Starting with the .NET Framework 4.7, Windows Forms includes enhancements for common high DPI and dynamic DPI scenarios. These include:

  • Improvements in the scaling and layout of a number of Windows Forms controls, such as the 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.

In versions of the .NET Framework starting with the .NET Framework 4.7, enhanced high DPI support is an opt-in feature. You must configure your application to take advantage of it.

Starting with the .NET Framework 4.7, three new events allow you to programmatically handle dynamic DPI changes:

  • DpiChangedAfterParent, which is fired when the DPI setting for a control is changed programmatically after a DPI change event for its parent control or form has occurred.
  • DpiChangedBeforeParent, which is fired when the DPI setting for a control is changed programmatically before a DPI change event for its parent control or form has occurred.
  • DpiChanged, which is fired when the DPI setting changes on the display device where the form is currently displayed.

The .NET Framework 4.7 also adds a number of new helper methods and properties that provide information about DPI scaling and allow you to perform DPI scaling. These include:

  • LogicalToDeviceUnits, which converts a value from logical to device pixels.
  • ScaleBitmapLogicalToDevice, which scales a bitmap image to the logical DPI for a device.
  • DeviceDpi, which returns the DPI for the current device.


WPF Enhancements:
Reference: https://learn.microsoft.com/en-us/dotnet/framework/whats-new/#high-dpi-improvements-1

Windows Presentation Foundation (WPF) High DPI enhancements

In .NET Framework 4.8, WPF adds support for Per-Monitor V2 DPI Awareness and Mixed-Mode DPI scaling. See High DPI Desktop Application Development on Windows for additional information about high DPI development.

.NET Framework 4.8 improves support for hosted HWNDs and Windows Forms interoperation in High-DPI WPF applications on platforms that support Mixed-Mode DPI scaling (starting with Windows 10 April 2018 Update). When hosted HWNDs or Windows Forms controls are created as Mixed-Mode DPI-scaled windows by calling SetThreadDpiHostingBehavior and SetThreadDpiAwarenessContext, they can be hosted in a Per-Monitor V2 WPF application and are sized and scaled appropriately. Such hosted content is not rendered at the native DPI; instead, the operating system scales the hosted content to the appropriate size. The support for Per-Monitor V2 DPI awareness mode also allows WPF controls to be hosted (that is, parented) in a native window in a high-DPI application.

So as you can see from the above info, there are substantial benefits to upgrading Syncfusion Essential Studio (both WinForms and WPF) to .NET Framework 4.8.

Thanks and Kind Regards,
-Taylour



MA Manikanda Akash Munisamy Syncfusion Team July 12, 2024 12:57 PM UTC

Hi Taylour,
Thank you for your detailed feedback and for highlighting the importance of native support for .NET Framework 4.8 and 4.8.1. We understand the value of the new features and performance improvements these frameworks bring, especially concerning high DPI support and ARM processor performance.
To better understand the specific issues, you are encountering when using Syncfusion controls in your projects, could you please provide more details about any challenges or limitations you are facing? This will help us address your concerns more effectively.
Additionally, as part of our commitment to providing the best possible support, we are open to recompiling a few assemblies (up to five) specifically for .NET Framework 4.8.1. We believe this could help illustrate the differences in behavior and performance compared to using assemblies built with .NET Framework 4.6.2.
We look forward to your response and to working together to enhance your experience with our products.
Regards,
Manikanda Akash M

Loader.
Up arrow icon