"System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.Maui.Controls.Compatibility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.'"
Occurs when creating a blank .net maui project using .net9 and adding Telerik MAUI NuGet Package latest version 8.0.0
Repro steps:
1. Create a new dotnet9 basic project in visual studio. 2. Launch it on windows. it runs. 3. Add the Telerik.UI.for.Maui.Trial package, version 8. (don't bother adding the UseTelerik line to MauiProgram.cs, it'll fail either way). 4. Clean and Rebuild the solution. 5. Debug the app on windows again. It fails on launch with a file not found error that seems to relate to: "Exception thrown: 'System.IO.FileNotFoundException' in Telerik.Maui.Controls.Compatibility.dll" System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.Maui.Controls.Compatibility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.'
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
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!
After updating our Maui application to Maui version 8.0.90, the Entry controls in the WinUI version stopped responding to WidthRequest, HorizontalOptions, or parent container sizes. I thought it was just a Maui problem, but in the relevant issue's notes, I saw that users were having trouble duplicating it unless Telerik UI for .NET Maui was installed (https://github.com/dotnet/maui/issues/24783).
So I created a test app that contains a few Entry controls in various containers:
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="WinUIEntryBug.MainPage">
<ScrollView>
<VerticalStackLayout
Padding="30,0"
Spacing="25">
<Border>
<Entry />
</Border>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Entry Grid.Column="0"></Entry>
</Grid>
<Frame>
<Entry />
</Frame>
<Entry />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
Without the Telerik components added to the project, the Entry boxes render correctly:
But, when I add a reference to Telerik UI for .NET Maui version 7.1.0 (latest at the time this was written), I get this:
Note: I didn't even add UseTelerik() to the Builder in the MauiProgram.cs, just added the Nuget package.
Changing the WidthRequest, HorizontalOptions, MinWidthRequest, etc. does not affect their size. They do render correctly in iOS and Android, though.
If I then remove the UI for .NET Maui Nuget package, they go back to working.
In our main application, we are heavily dependent on Telerik components and have a substantial number of customers using the Windows version of our application, so this heavily impacts our ability to ship. Particularly since the Maui 8.0.90 fixes other bugs that we needed addressed.
I've attached my sample project with the Telerik UI for .NET Maui package installed. You can remove it to see the normal operation of the Entry boxes.
This was a regression when I upgraded to 7.1.0.
Before, when the editor was empty and had a height set, you could tap anywhere to start editing. Now, I can only start editing by tapping the top of the editor.
I tested this only on Android.
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
I recently migrated my code from Xamarin.forms to MAUI.
RadListView.GetDataView now always returns null in MAUI , its working fine in Xamarin.forms.
I am trying to close all the groups while loading, but facing a null exception with DATAVIEW
protected override void OnAppearing()
{
base.OnAppearing();
try
{
//collapse all
var dataView = MyRadListView.GetDataView();
dataView.CollapseAll();}}
Add a VS Item Template for Login screen as in Telerik UI for Xamarin: VIsual Studio Item Templates.
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:
Hi,
Do you have on your roadmap to include a Shimmer View / Control as part of your .NET MAUI offerings to tidy up a screen loading indication.
From a UI/UX perspective, a shimmer sits better with our user community rather than a loading indicator.
Thank you,
Shane
I would like to draw attention to this at an early stage.
When using MAUI Nightly 8.0.20-nightly.10376, the app crashes immediately upon startup if you set Telerik Popup Settings in the MAUI Styles
See min repro example https://github.com/baaaaif/MauiNightlyCrash
<MauiVersion>8.0.20-nightly.10376</MauiVersion>
<Style TargetType="telerik:RadTimePicker">
<Setter Property="PopupSettings">
<Setter.Value>
<telerik:PickerPopupSettings IsHeaderVisible="False" />
</Setter.Value>
</Setter>
</Style>
From the inner Exception...:
Name | Value | Type | |
---|---|---|---|
◢ | InnerException | {"Object reference not set to an instance of an object."} | System.Exception {System.NullReferenceException} |
at Microsoft.Maui.Controls.AppThemeBinding.AppThemeProxy..ctor(Element parent, AppThemeBinding binding) at Microsoft.Maui.Controls.AppThemeBinding.Apply(Object context, BindableObject bindObj, BindableProperty targetProperty, Boolean fromBindingContextChanged, SetterSpecificity specificity) at Microsoft.Maui.Controls.BindableObject.SetBinding(BindableProperty targetProperty, BindingBase binding, SetterSpecificity specificity) at Microsoft.Maui.Controls.BindableObject.SetBinding(BindableProperty targetProperty, BindingBase binding) at Microsoft.Maui.Controls.BindableObjectExtensions.SetAppTheme[T](BindableObject self, BindableProperty targetProperty, T light, T dark) at Microsoft.Maui.Controls.BindableObjectExtensions.SetAppThemeColor(BindableObject self, BindableProperty targetProperty, Color light, Color dark) at Telerik.Maui.Controls.PickerPopupSettings.OnPopupOutsideBackgroundColorPropertyChanged(Color color) at Telerik.Maui.Controls.PickerPopupSettings..ctor() at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean wrapExceptions)
The Bottom Sheet component provides an intuitive way to display additional content to the users. It appears on the bottom of a screen as an overlay and presents users with a choice of actions that they must take.
Progress/Telerik --
I would like Telerik to extend the Microsoft .NET MAUI MediaPicker control to support the selection of MULTIPLE Photos and/or Videos from the Image Gallery.
I believe this is a reasonably standard scenario for use cases where the user takes multiple Photos or Videos with the Camera and then would like to upload them to a server for storage in a web app and database.
The current Microsoft MediaPicker supports the selection of a SINGLE item only.
.NET MAUI - Platform Integration - Media - Photos and Videos
And while there are several GitHub libraries that have done this for Xamarin.Forms (and rely on Xamarin.Essentials), they are either archived or not updated in a timely manner like a 3rd Party - Paid For - Control would be.
Even Telerik/Progress has recently done a Blog Post on how to use the Microsoft Control - Leomaris Reyes published this:
Getting Started with the Media Picker in .NET MAUI
Also, I believe this Feature Request is asking for the same feature:
https://feedback.telerik.com/maui/1552553-upload-images-file-via-in-net-maui
Now, for me personally, I only need multiple image selection. So, if that's easier without the support for the other pieces, I would be happy. To be complete, I'm thinking others would need to select multiple videos.
From Ms. Reyes Blog Post....
private async void TakePhoto(object sender, EventArgs e)
{
FileResult photo = await MediaPicker.Default.PickPhotoAsync(new MediaPickerOptions
{
Title = "Select your photo"
});
// Here, add the code that is being explained in the next step.
}
The new control would have something like this:
private async void TakePhoto(object sender, EventArgs e)
{
IEnumerable<FileResult> photos = await RadMediaPicker.PickPhotosAsync(new MediaPickerOptions
{
Title = "Select your photos"
});
// Here, add the code to loop through and process the selected images
}
Please let me know if you require additional information.