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.
Provide support to display highlight annotation in the PDF Viewer. Currently, the highlight color is displayed but the text is missing.
I want an easy way to style the items in the drop down when in normal and selected state.
Currently I can use the following approaches:
1. RadComboBoxItem and an implicit style
2. Using the default ItemTemplate and selecteditemtemplate
3. Using the TelerikTheming.
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.