Call stack:
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridGroupHeaderRowElement.Initialize(Telerik.WinControls.UI.GridViewRowInfo rowInfo) Line 100 at Telerik.WinControls.UI\GridGroupHeaderRowElement.cs(100) Telerik.WinControls.GridView.dll!Telerik.WinControls.Export.GridExportUtils.GetRowHeight(Telerik.WinControls.UI.RadGridView radGridView, Telerik.WinControls.UI.RowElementProvider rowProvider, Telerik.WinControls.UI.CellElementProvider cellProvider, Telerik.WinControls.UI.GridViewRowInfo gridViewRowInfo, bool exportVisualSettings) Line 158 at Telerik.WinControls.Export\GridExportUtils.cs(158) Telerik.WinControls.GridView.dll!Telerik.WinControls.Export.GridViewSpreadExport.AddRow(Telerik.WinControls.UI.GridViewRowInfo gridViewRowInfo, int rowIndex) Line 960
Run the attached project on a monitor with 100% DPI scaling and open the Excel-like filter popup:
100%:
After moving the form to the second monitor with 150% DPI scaling, the filter popup is not OK:
150%:
The popup is smaller and smaller with each next opening (see the attached gif file) at 150%. If you decide to move back the form on the monitor with 100% DPI scaling, the filter popup is not scaled properly.
Load-On-Demand self-reference hierarchy provider
How to reproduce: Create a DPI-aware application and run it on a Windows 10 machine on 125%, the text inside the editors is smaller compared to the text in cells which are not in edit mode. Workaround: private void RadGridView1_CellEditorInitialized(object sender, GridViewCellEventArgs e) { BaseInputEditor editor = e.ActiveEditor as BaseInputEditor; if (editor != null) { RadTextBoxItem item = editor.EditorElement.FindDescendant<RadTextBoxItem>(); if (item != null) { item.HostedControl.Font = this.radGridView1.GridViewElement.GetScaledFont(this.radGridView1.GridViewElement.DpiScaleFactor.Height); } } }
Enable the ability to MERGE seperate rows (different records), like found in ITunes "Songs" mode where is shows the artwork (then artist,release undernearth) in a custom class, then the related song rows to the right. Your competitor Dev Express has it already in place. See youtube video here : https://www.youtube.com/watch?v=TfPXwE7GcXs Cheers
maskBoxColumn.FormatInfo = CultureInfo.CreateSpecificCulture("en-AE");
In this scenario, the RadGridView.DataSource property is set to Microsoft.EntityFrameworkCore.ChangeTracking.ObservableCollectionListSource. When the RadGridView.Rows.Remove() method is called an IndexOutOfRange exception is thrown.
When Excel-like filtering is enabled and the user selects an item from the "Available Filters" drop down menu, a CompositeFilterForm is shown.
In this case, the culture of the application is different from the culture of the machine. In this particular case, both cultures have different long date time format strings. current format mm/dd/yyyy compare to the one which the control is loading dd/mm/yyyy.
As a workaround, we can apply InvariantCulture before loading the XML and return the previous one after this:
CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
grid.LoadLayout(xml);
CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
When the columns are auto-generated, the way to modify the columns is to use the Columns collection. We could expose an event that will be called when the columns are auto-generating. From the event arguments, we could get the newly created column and replace with if needed or modify it. Similar to the CreateRow event of the control.