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.
Hello,
Is it planned to eventually ensure that platform theme changes at runtime properly convert controls over from light to dark and vice versa? Currently in Windows and Android (all that I tested so far), the controls either remain dark when changing to the light theme or end up in a sort of half and half state and don't completely change to the appropriate theme during runtime. If the app is closed and reopen, they are rendered properly.
Thank you
as per the instruction here : https://docs.telerik.com/devtools/maui/demos-and-sample-apps/overview#sdkbrowser-app
files - SwitchToNet8.ps1 and SwitchToNet9.ps1 does not exists in repository
Our product is also in use in Hebrew language (RTL) and i noticed that hebrew letters are not shown in the RadDataGrid.
I assume its a but since in other controls i use i havnt encountered this issue (yet).
Please please fix...
This is very important for us.
Many thanks in advance!
In most situations, the Segmented control is working as expected but it seems that it uses an optimization that is making it not to show the currently selected item in the UI.
In my page I have a list of items that are shown or hidden according to what the user selects.
Each item has a template and there is a template using the Segmented control.
If in the 1st item of the list I select the first tab in the segmented control, refresh the list, and select the 2nd tab of the first item in the new list,
everything work fine, I can switch between the lists and everything is ok.
But if I select the same tab, after I switch the content of the list, even having SelectedIndex, SelectedItem and ItemSource correct, it doesn't display the selected tab.
I tried a lot, calling OnPropertyChanged in many places, using SelectedItem, SelectedIndex, both.
No way for it to work.
It seems like an optimization that doesn't redraw the selected item by mistake if it is equal in value to the previous one.
For you to better understand our case, the page is a row of a table, where the user scroll through rows of this table.
If in the 1st row he selects the 1st tab and in the 2nd row too, if he tries to move back to row 1, the displayed tab is not shown.
Thanks in advance,
Jones Abramoff
I am in the process of preparing my product for alpha release and I am scrubbing my log files for anything that needs to be cleaned up prior to release. I am seeing two message in my log file that I cannot pinpoint in my code so I am suspecting it is coming from your code. I use NLog to log errors so I format Errors differently than general errors. I am seeing the following two errors being logged on app startup:
----------------------------------
2024-07-26 07:28:06.9283 ERROR
Call site: App.LogException
Method name: MobyClient.WinUI.App.LogException
Line: 0
Exception Type: System.ArgumentException
Exception Message: The parameter is incorrect.
Assets/Fonts/Segoe UI.otf is not a valid absolute URI.
Stack Trace: at WinRT.ExceptionHelpers.<ThrowExceptionForHR>g__Throw|39_0(Int32 hr)
Additional Info: An error occurred
----------------------------------and
----------------------------------
2024-07-26 07:28:06.8891 ERROR
Call site: App.LogException
Method name: MobyClient.WinUI.App.LogException
Line: 0
Exception Type: System.ArgumentException
Exception Message: The parameter is incorrect.
Assets/Fonts/Segoe UI.ttf is not a valid absolute URI.
Stack Trace: at WinRT.ExceptionHelpers.<ThrowExceptionForHR>g__Throw|39_0(Int32 hr)
Additional Info: An error occurred
----------------------------------In my MauiProgram.cd file, I load many fonts:
_ = builder
.UseMauiApp<App> ()
.UseTelerik ()
.ConfigureFonts (fonts => {
_ = fonts.AddFont ("FontAwesome6Brands-Regular-400.otf", "FaBrands");
_ = fonts.AddFont ("FontAwesome6Duotone-Solid-900.otf", "FaDuotone");
_ = fonts.AddFont ("FontAwesome6Pro-Light-300.otf", "FaLight");
_ = fonts.AddFont ("FontAwesome6Pro-Regular-400.otf", "FaRegular");
_ = fonts.AddFont ("FontAwesome6Pro-Solid-900.otf", "FaSolid");
_ = fonts.AddFont ("FontAwesome6Pro-Thin-100.otf", "FaThin");
_ = fonts.AddFont ("OpenSans-Regular.ttf", "OpenSansRegular");
_ = fonts.AddFont ("OpenSans-Semibold.ttf", "OpenSansSemibold");
_ = fonts.AddFont ("Poppins-Black.otf", "PoppinsBlack");
_ = fonts.AddFont ("Poppins-BlackItalic.otf", "PoppinsBlackItalic");
_ = fonts.AddFont ("Poppins-Bold.otf", "PoppinsBold");
_ = fonts.AddFont ("Poppins-BoldItalic.otf", "PoppinsBoldItalic");
_ = fonts.AddFont ("Poppins-ExtraBold.otf", "PoppinsExtraBold");
_ = fonts.AddFont ("Poppins-ExtraBoldItalic.otf", "PoppinsExtraBoldItalic");
_ = fonts.AddFont ("Poppins-ExtraLight.otf", "PoppinsExtraLight");
_ = fonts.AddFont ("Poppins-ExtraLightItalic.otf", "PoppinsExtraLightItalic");
_ = fonts.AddFont ("Poppins-Italic.otf", "PoppinsItalic");
_ = fonts.AddFont ("Poppins-Light.otf", "PoppinsLight");
_ = fonts.AddFont ("Poppins-LightItalic.otf", "PoppinsLightItalic");
_ = fonts.AddFont ("Poppins-Medium.otf", "PoppinsMedium");
_ = fonts.AddFont ("Poppins-MediumItalic.otf", "PoppinsMediumItalic");
_ = fonts.AddFont ("Poppins-Regular.otf", "PoppinsRegular");
_ = fonts.AddFont ("Poppins-SemiBold.otf", "PoppinsSemiBold");
_ = fonts.AddFont ("Poppins-SemiBoldItalic.otf", "PoppinsSemiBoldItalic");
_ = fonts.AddFont ("Poppins-Thin.otf", "PoppinsThin");
_ = fonts.AddFont ("Poppins-ThinItalic.otf", "PoppinsThinItalic");
_ = fonts.AddFont ("Segoe-Ui.ttf", "SegoeUi");
_ = fonts.AddFont ("Segoe-Ui-Bold.ttf", "SegoeUiBold");
_ = fonts.AddFont ("Segoe-Ui-Regular.ttf", "SegoeUiRegular");
_ = fonts.AddFont ("Segoe-Ui-Semibold.ttf", "SegoeUiSemibold");
_ = fonts.AddFont ("Segoe-Ui-Semilight.ttf", "SegoeUiSemilight");
})
.ConfigureMobyApplication ();As you can see, 'Assets/Fonts/Segoe UI.ttf' or 'Assets/Fonts/Segoe UI.otf' is a font I am loading. In fact, all of the 'Segoe' font names use a dash '-' instead of a space in the file name. Also, I only load 'ttf' fonts and not 'otf' fonts for Seqoe fonts. Telerik controls are the only non-standard controls I am using so I am suspecting this font name is being loaded by your controls somehow. Can you please confirm this?
Also, when I went to report this incident, I noticed that you had requested input from me on previous issues I have raised, but I never received any email from you requesting this information. Since I rarely log into this website for anything, I don't know how you expect people to answer your questions if they are not made more visible. Is there a way to subscribe to an issue so I see all updates? I looked over the complete set of items I can add to this issue and none of them seem to be related to answering questions from you. It would be helpful for you to send any and all updates on any issues that have been logged. I just scanned my entire set of email folders and other than messages from your sales department, no other messages were found. Just sayin'...
Asking for a webview which opens external links ( links with a target= element) in the same webview instead of it does do nothing onbios and android, but in windows opens it a browser window with that url of the link!
we need the functionality to overrule the target= function of a link. To the same webview. At this moment we need a hybridwebview functionality! And it would be very handy to have that in a telerik control!
best regards, Fandy
If this worked in earlier releases, it no longer does.
Using iOS Simulator (set to iPhone 15 iOS 17.4) - with a DataGrid as below, double-clicking the text cell will crash the app. I have not yet tried on a native device build (not simulator.)
<telerik:RadDataGrid.Columns>
<telerik:DataGridTextColumn PropertyName="ObjectName" HeaderText="Name"/>
</telerik:RadDataGrid.Columns>
Microsoft Visual Studio 2022 v17.9.6
Microsoft.Maui.Controls 8.0.21
Full Stack Trace:
Runtime exception with Microsoft .NET 8.0.100:
*** NSForwarding: warning: object 0x600002199c20 of class 'Telerik_Maui_Controls_Compatibility_ChartRenderer_iOS_TKExtendedChart' does not implement methodSignatureForSelector: -- trouble ahead
*** NSForwarding: warning: object 0x600002199c20 of class 'Telerik_Maui_Controls_Compatibility_ChartRenderer_iOS_TKExtendedChart' does not implement doesNotRecognizeSelector: -- abort
The issue occurs on:
Nuget - Telerik.UI.for.Maui 6.7.0
Maui Version 8.0.7
.NET SDK 8.0.100
Simulator - iOS 16.4 and 17.2 (Version 15.2 -1019)
Best regards
When I compile my project with <WindowsPackageType>None</WindowsPackageType> option, icons ar enot displayed in Telerik controls (like richeditor)
Same project compiled with package and deployed are ok
When the Source of a RadRichTextEditor is set, the TextColor is always black. Tested on Android:
<Grid HeightRequest="400"
WidthRequest="300">
<telerik:RadRichTextEditor x:Name="RichTextEditorControl"
Source="with source text"
TextColor="White"
BackgroundColor="Green" />
</Grid>
I have an html file with <img src="./images/ForkliftGateMainPage.png" alt="MainPage" width="1600" title="Page principale" />
The image is displayed when I open it with my browser, but not displayed with RadRichtextEditor, Why ?
Repro steps:
Put a grid inside a RadBusyIndicator with a button. On a button click, set IsBusy to true, change the height of the grid, and set IsBusy to false. The grid height will not be updated.
Another way to reproduce is to add children views to the grid while IsBusy is true. The children will not be rendered after it's done
This is a regression from a recent Telerik update
If I uncomment "HorizontalStackLayout", the image is not displayed.
I want to display 2 Imageeditor in the same tabview, how to do this ?
<telerik:RadTabView
telerik:RadDockLayout.Dock="Left"
x:Name="tabView" AutomationId="tabView"
HeaderPosition="Bottom"
>
<telerik:TabViewItem HeaderText="Face 1">
<!--<telerik:RadImageEditorToolbar ImageEditor="{x:Reference imageEditor}">
</telerik:RadImageEditorToolbar>-->
<!--<HorizontalStackLayout>-->
<telerik:RadImageEditor x:Name="imageEditor1"
MinZoomLevel="0.1"
MaxZoomLevel="20"
Source = "{Binding DisplayedPhoto, TargetNullValue={versares:ImageResource Images.palette.png}}"
/>
<!--<telerik:RadImageEditor x:Name="imageEditor2"
MinZoomLevel="0.1"
MaxZoomLevel="20"
Source = "{Binding DisplayedPhoto, TargetNullValue={versares:ImageResource Images.palette.png}}"
/>-->
<!--</HorizontalStackLayout>-->
</telerik:TabViewItem>
<telerik:TabViewItem HeaderText="Face 2">
<Label Margin="10" Text="This is the content of the Folder tab" />
</telerik:TabViewItem>
</telerik:RadTabView>
I would like a control to handle Currency that works with the UICulture
In the US it would show the input as $ ____.00. or ____.00 (USD) based on UICulture
in other countries it would show the currency symbol based on the UICulture
This control should work will all other controls such as grid column input