Product / versions
Telerik UI for .NET MAUI 15.1.0 (also reproduced with 15.0.0)
.NET MAUI 11.0.0-rc.2.26505.5 (SDK 11.0.100-rc.2.26504.105), iOS 26.5 and iOS 27.0 (simulator, Xcode 27.0)
Works with .NET MAUI 11.0.0-rc.1.26451.6; Android is not affected
Symptom
On iOS, any RadBorder, RadEffectsView or RadTemplatedButton whose fill comes from Background (a SolidColorBrush, e.g. Background="Orange") renders with no fill. Setting BackgroundColor instead still works. Since RadTemplatedButtonStyle sets Background, templated buttons lose their fill too.
Root cause (from decompiling both assemblies)
RadBorderHandler.BorderMapper (iOS) maps "BackgroundColor" to MapBackgroundColor, which calls RadBorderExtensions.UpdateBackgroundColor:
tkBorder.BackgroundColor = RadMauiCoreHelper.ToUIColor(border.BackgroundColor);
When only Background is set, border.BackgroundColor is null, so this clears UIView.BackgroundColor.
The "Background" key, inherited from ViewHandler.ViewMapper, runs earlier in the same property pass. UIView.UpdateBackground paints a SolidPaint by setting the same UIView.BackgroundColor, which step 1 then wipes.
Up to MAUI rc.1, Controls remapped "BackgroundImageSource" to handler.UpdateValue("Background"). That ran later in the pass and repainted the brush, which hid the problem. In rc.2 (VisualElement.MapBackgroundImageSourceForControls) the redirect is skipped once "Background" has already run in the bulk pass (PropertyMapperPassScope.IsRedundantBulkPassRedirect), so the overwrite now sticks.
On Android, UpdateBackground and UpdateBackgroundColor both rebuild the same BorderDrawable from the whole IRadBorder, so the order of the keys does not matter there.
Repro
<telerik:RadBorder Background="Orange" HeightRequest="80" CornerRadius="8" />
<telerik:RadTemplatedButton Content="Login" Background="Orange" />
Run on iOS with MAUI 11 rc.2: both are transparent. With BackgroundColor="Orange" they render correctly.
Suggested fix
In the iOS MapBackgroundColor (or UpdateBackgroundColor), do not overwrite the native background when IView.Background is a non-empty paint. Alternatively, resolve both properties in one place, as the Android handler does.
Workaround we use
#if IOS
RadBorderHandler.BorderMapper.AppendToMapping(
nameof(VisualElement.BackgroundColor),
static (handler, border) =>
{
if (border.Background is SolidPaint)
{
Microsoft.Maui.Platform.ViewExtensions.UpdateBackground(handler.PlatformView, border);
}
});
#endif
Possibly related (pre-existing, also on rc.1)
TKBorderView derives from MauiView, not LayoutView/ContentView. So UIView.UpdateBackground(null) returns early without clearing UIView.BackgroundColor. If Background goes from a brush to null at runtime while BackgroundColor is null, the old fill stays on screen.
RadTabView WinUI: selected tab content is visible but native hit-test position remains on previous tab after repeated switching
Product: Telerik UI for .NET MAUI
Version: 15.0.0
Platform: Windows / WinUI
Target framework: net10.0-windows10.0.19041.0
Control: RadTabView
Description
We are experiencing a reproducible issue with RadTabView on Windows/WinUI where the selected tab content becomes visually out of sync with the native hit-test/layout position.
After switching between two tab contents several times, the newly selected tab appears on screen and is reported as selected/enabled, but pointer input is still received by the previously selected tab content.
This makes the visible tab appear disabled or noninteractive even though its controls and ancestors are enabled.
Minimal reproduction sequence
Using two tab contents, for example:
Expected result
The newly selected Expenses tab should be positioned in the active viewport and receive pointer input.
Actual result
On the failing second activation of Expenses:
RadTabView reports Expenses as selected.However, diagnostic inspection of the native layout shows that:
In other words, the visual selection and native hit-test/layout position diverge.
Additional observations
IsBusy=False.RadTabView content strip not synchronizing its layout/hit-test position with the selected tab.Diagnostic state comparison
| State | Current content | Result |
|---|---|---|
| A | Line Items – Item Code | Correct content receives input |
| B | Expenses – Expense Code | Correct content receives input |
| C | Line Items – Item Code again | Correct content receives input |
| D | Expenses selected again | Expenses visible, but pointer is received by Line Items |
At state D:
Question
Could you please confirm whether this is a known RadTabView issue on Windows/WinUI, particularly involving repeated selection causing the native content strip or hit-test geometry to become out of sync with the selected item?
If this is known, please advise:
We can provide a small standalone reproduction project and diagnostic logs if required.
Thank you.
Null ref exception when getting value from a cell:
Exception.Message= Object reference not set to an instance of an object.
at Telerik.Maui.Data.PropertyInfoFieldInfo.GetValue(Object item)
at Telerik.Maui.Controls.DataGrid.CellsController`1.GetCellModel(IItemInfoNode parentRow, ItemInfo columnItemInfo, Int32 rowLine, Int32 columnLine, Boolean& preparedModel)
at Telerik.Maui.Controls.DataGrid.CellsController`1.GenerateCellsForRow(IItemInfoNode rowModel, Int32 rowSlot)
at Telerik.Maui.Controls.DataGrid.NodePool`2.GenerateModelsForInfos(IList`1 itemInfos, ModelGenerationContext modelGenerationContext, MeasureContext measureContext)
at Telerik.Maui.Controls.DataGrid.NodePool`2.MeasureForward(MeasureContext& context)
at Telerik.Maui.Controls.DataGrid.NodePool`2.MeasureVertically(RadSize availableSize, Double offset, Double verticalBuffer)
at Telerik.Maui.Controls.DataGrid.NodePool`2.OnMeasure(RadSize availableSize, Double offset, Double verticalBuffer)
at Telerik.Maui.Controls.DataGrid.GridModel.MeasureCells(RadSize availableSize)
at Telerik.Maui.Controls.DataGrid.DataGridContentLayout.MeasureChildren(Double widthConstraint, Double heightConstraint)
at Microsoft.Maui.Platform.MauiPanel.MeasureOverride(Size availableSize)
at ABI.Microsoft.UI.Xaml.IFrameworkElementOverrides.Do_Abi_MeasureOverride_0(IntPtr thisPtr, Size availableSize, Size* result)
When having for example device set to US culture , the TimePicker shows 12h time format, which is correct.
If you want to keep the US culture but want to use the 24h time format, the TimePicker does not apply the format, it still uses 12h time format.
The same behavior happens in the time part of the DateTimePicker
When adding a ComboBox in a page and navigating back from this page to another page, the app crashes.
PlatformView cannot be null here
StackTrace = " at Microsoft.Maui.Handlers.ViewHandler`2.get_PlatformView()\r\n at Telerik.Maui.Handlers.RadBorderHandler.MapBackgroundColor(RadBorderHandler handler, IRadBorder border)\r\n at Microsoft.Maui.PropertyMapper`2.<>c__DisplayClass5_0.<Add>b__0(IElementH...
Workaround:
If I wrap that command call in an ICommand then no issues.
If the AutoComplete is nested inside a modal Popup and Unfocus() is called on SuggestionItemSelected or Completed, the cursor/focus stays within the AutoComplete.
The same does not happen (the AutoComplete is properly unfocused) when the control is placed in MainPage.
The ItemsSource of the views is populated in the ViewModel of the page. This is done in a command that is triggered by the NavigatedTo event of the page, which is forwarded via EventToCommandBehavior from the Maui Toolkit.
When using the RadCollectionView the loaded items are no longer displayed.
When the ObservableCollection of the items is completely reconstructed and reassigned the display works.
I am reporting a button-sizing issue in Telerik UI for .NET MAUI RadCollectionView on iOS. A recycled item displays the correct button text but can retain the width allocated for the previous item’s longer text.
Environment
• Telerik UI for .NET MAUI 15.0.0; also reproduced with 14.1.0.
• .NET 10, Microsoft.Maui.Controls 10.0.80.
• Platform: iOS.
• No exception or error code accompanies the layout failure.
Reproduction sample: CollectionViewButtonSizingRepro.zip
The sample displays Telerik RadCollectionView and the built-in MAUI CollectionView side by side. Both use the same item template: Grid → Telerik RadButton, with no button width request. Each collection has independent data.
Telerik uses automatic item length ( ItemLength="-1" ); MAUI uses MeasureAllItems . There are no custom handlers, manual recycling, or layout workarounds.
Steps to reproduce
1. Launch the sample on iOS. All buttons initially display Download.
2. Tap several buttons in the Telerik pane. Their text changes to Downloaded, requiring a wider button.
3. Scroll those rows completely out of view and continue through untouched Download items. Try both continuous scrolling and scrolling with pauses.
4. Repeat independently in the MAUI pane.
Expected: After recycling, each button is sized for its current text and image.
Actual: In the Telerik pane, a Download button can retain the wider allocation from the previous Downloaded state, leaving incorrect spacing. The same template does not reproduce the issue in the MAUI CollectionView pane. Upgrading to Telerik 15.0.0 does not resolve it.
Earlier diagnostics in our original application showed correct fresh button measurement after rebinding, but a stale arranged width without a corrective child arrangement when the footer’s bounds remained unchanged.
Thanks,
Mingxiao Ye
When a RadPopup's content contains nested ContentViews and the Label's (Formatted)Text is assigned after the popup has been opened (IsOpen = true), the popup does not resize to fit the new content, so the text is clipped. Assigning the same text before opening renders correctly.
Steps to reproduce