Poor support for custom DPI scaling in Windows 7 - Windows 10.
There no null checking, and there is dirty hacks:
CASE 1: RadPageViewElement
public override void DpiScaleChanged(SizeF scaleFactor)
{
base.DpiScaleChanged(scaleFactor);
if (this.Owner != null && this.Owner.Pages.Count > 1)
{
this.Owner.SuspendEvents();
if (this.Owner.SelectedPage == this.Owner.Pages[0])
{
this.Owner.SelectedPage = this.Owner.Pages[1]; // NO NULL CHECKING
this.Owner.SelectedPage = this.Owner.Pages[0]; // DIRTY HACK: users can have their own processing OnSelectedPage, which is unexpected here!
}
else
{
RadPageViewPage page = this.Owner.SelectedPage;
this.Owner.SelectedPage = this.Owner.Pages[0];
this.Owner.SelectedPage = page;
}
CASE 2:
public partial class RadForm1 : Telerik.WinControls.UI.RadForm
{
public RadForm1()
{
InitializeComponent();
radWizard1.Pages.Add(new WizardPage()); // when user has 100% Dpi, this code works normally. But if user has custom scale DPI (e.g. 101%), user received System.NullReferenceException: 'Object reference not set to an instance of an object.' (because because again there is no verification for ContentArea = null)...
}
}
Please improve the work with custom DPI scaling!