xamarin 相关问题

Xamarin是一个由Xamarin.iOS,Xamarin.Android,Xamarin.Mac和Xamarin Test Cloud组成的平台。它允许您编写适用于iOS,Android和Mac的跨平台本机应用程序,并在整个生命周期内关注您的应用程序。 Xamarin.Forms的引入支持iOS,Android和Windows的Native UI开发

如何从 xamarin android web 视图中加载的登录页面的用户名文本框中读取值

用户在 Xamarin android 中使用 webview 在网页中输入用户名文本框中的值后,我试图从登录页面获取用户名文本框中的值。 我尝试使用“document.getelementbyid('useranme')。

回答 2 投票 0

尝试向服务器发送 byte[] 时,Xamarin 中出现“无法访问已处置对象”异常

这个问题的旧版本太长了,所以在多次尝试解决这个问题之后,我发现所有的问题都可以简化为一个简单的问题。为什么这会产生

回答 2 投票 0

如何使框架小于1?

我有一个应用程序,您应该通过将地图移动到坐标并按下一步来从 Google 地图获取坐标。为了显示地图指向的位置,有一个黑色矩形......

回答 1 投票 0

在Xamarin中滚动CollectionView图片时出现滞后,该怎么办?

当我在 CollectionView 中滚动时,它开始滞后,可能正在加载下一张图片。我能用它做什么?我该如何优化它? 这是 XAML: 当我在 CollectionView 中滚动时,它开始滞后,可能正在加载下一张图片。我能用它做什么?我该如何优化它? 这是 XAML: <Grid BackgroundColor="#00aeef"> <Grid.RowDefinitions> <RowDefinition Height="*"/> </Grid.RowDefinitions> <CollectionView x:Name="myCollectionView" Grid.Row="0"> <CollectionView.ItemTemplate> <DataTemplate> <StackLayout> <Frame Padding="0" BackgroundColor="#00d2ff" Margin="20" CornerRadius="30"> <StackLayout Padding="20"> <Label Text="{Binding Airline}" TextColor ="White" FontSize="30" HorizontalOptions="Center"/> <Image Source="{Binding Url}" HeightRequest="200"/> <Label Text="{Binding Plane, StringFormat='Plane: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Airline, StringFormat='Airline: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Livery, StringFormat='Livery: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Registration, StringFormat='Reg: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Airport, StringFormat='Airport: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Date, StringFormat='Date: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Comment, StringFormat='Comment: {0}'}" TextColor ="White" FontSize="15"/> </StackLayout> </Frame> </StackLayout> </DataTemplate> </CollectionView.ItemTemplate> </CollectionView> </Grid> 这是我的代码: public ShowPlanes() { InitializeComponent(); var db = new SQLiteConnection(_dbPath); var data = db.Table<Airplane>().ToList(); myCollectionView.ItemsSource = data; NavigationPage.SetHasNavigationBar(this, false); } 如果您的图像很大,请尝试将其调整为您需要的尺寸,也许会解决这个问题,下面是非常好的参考。 https://learn.microsoft.com/en-us/samples/xamarin/xamarin-forms-samples/xamformsimageresize/ 如果您的图像很大,例如超过 100KB(每个),那么您可以考虑使用不同的文件名和较小的尺寸(例如 10-20KB)为相同图像创建缩略图。 这将提高您的应用程序的速度。 要调整图像大小,您可以使用以下代码。该功能将保持原始图像的纵横比。此外,代码会将原始图像设置为 72dpi。结果将是一个小的优化文件,准备渲染到您的视图。 using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; ... public static void CreatePreviewImage(string imageFullFilename, string previewFullFilename) { ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg); // Create an Encoder object based on the GUID // for the Quality parameter category. System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality; // Create an EncoderParameters object. // An EncoderParameters object has an array of EncoderParameter // objects. In this case, there is only one // EncoderParameter object in the array. EncoderParameters myEncoderParameters = new EncoderParameters(1); EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 75L); //default myEncoderParameters.Param[0] = myEncoderParameter; Bitmap originalimage = (Bitmap)System.Drawing.Image.FromFile(imageFullFilename, true); originalimage.SetResolution(72, 72); int w = originalimage.Width; int h = originalimage.Height; int pw = 0; int ph = 0; h = originalimage.Height * w / originalimage.Width; if (w > h) { pw = 200; ph = h * pw / w; } else { ph = 200; pw = w * ph / h; } Bitmap previewImage = ImageHandlers.ResizeImage(originalimage, pw, ph); previewImage.Save(previewFullFilename, jpgEncoder, myEncoderParameters); } public static Bitmap ResizeImage(Image image, int width, int height) { var h = image.Height; var w = image.Width; if (w > h) { height = h * width / w; } else if( h < w ) { width = w * height / h; } var destRect = new Rectangle(0, 0, width, height); var destImage = new Bitmap(width, height); destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); using (var graphics = Graphics.FromImage(destImage)) { graphics.CompositingMode = CompositingMode.SourceCopy; graphics.CompositingQuality = CompositingQuality.HighQuality; graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; using (var wrapMode = new ImageAttributes()) { wrapMode.SetWrapMode(WrapMode.TileFlipXY); graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode); } } return destImage; } public static ImageCodecInfo GetEncoder(ImageFormat format) { ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders(); foreach (ImageCodecInfo codec in codecs) { if (codec.FormatID == format.Guid) { return codec; } } return null; } 这是调整大小的工作代码: var bitmap = SKBitmap.Decode(Path); int h = bitmap.Height; int w = bitmap.Width; int newWidth = w; int newHeight = h; if (h > 1080 || w > 1080) { int rectHeight = 1080; int rectWidth = 1080; //aspect ratio calculation float W = w; float H = h; float aspect = W / H; await DisplayAlert("aspect", aspect.ToString() + w.ToString() + h.ToString(), "OK"); //new dimensions by aspect ratio newWidth = (int)(rectWidth * aspect); newHeight = (int)(newWidth / aspect); await DisplayAlert("aspect", "h " + newHeight.ToString() + " w " + newWidth.ToString(), "OK"); //if one of the two dimensions exceed the box dimensions if (newWidth > rectWidth || newHeight > rectHeight) { //depending on which of the two exceeds the box dimensions set it as the box dimension and calculate the other one based on the aspect ratio if (newWidth > newHeight) { newWidth = rectWidth; newHeight = (int)(newWidth / aspect); } else { newHeight = rectHeight; newWidth = (int)(newHeight * aspect); } } } var resizedImage = bitmap.Resize(new SKImageInfo(newWidth, newHeight), SKBitmapResizeMethod.Lanczos3); var image = resizedImage.Encode(SKEncodedImageFormat.Jpeg, 80); var path = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); var filepath = System.IO.Path.Combine(path, fileName); string finalPath = filepath; using (var stream = File.OpenWrite(filepath)) image.SaveTo(stream); return finalPath; } 我检查了你的代码,并通过不同的方式进行了实验,最后,我明白了为什么它会滞后。通过添加滚动视图,还记得修复图像的宽度。你能试试这个代码吗: <Grid BackgroundColor="#00aeef"> <Grid.RowDefinitions> <RowDefinition Height="*"/> </Grid.RowDefinitions> <scrollview> <CollectionView x:Name="myCollectionView" Grid.Row="0"> <CollectionView.ItemTemplate> <DataTemplate> <StackLayout> <Frame Padding="0" BackgroundColor="#00d2ff" Margin="20" CornerRadius="30"> <StackLayout Padding="20"> <Label Text="{Binding Airline}" TextColor ="White" FontSize="30" HorizontalOptions="Center"/> <Image Source="{Binding Url}" HeightRequest="200" WidthRequest="200"/> <Label Text="{Binding Plane, StringFormat='Plane: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Airline, StringFormat='Airline: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Livery, StringFormat='Livery: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Registration, StringFormat='Reg: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Airport, StringFormat='Airport: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Date, StringFormat='Date: {0}'}" TextColor ="White" FontSize="15"/> <Label Text="{Binding Comment, StringFormat='Comment: {0}'}" TextColor ="White" FontSize="15"/> </StackLayout> </Frame> </StackLayout> </DataTemplate> </CollectionView.ItemTemplate> </CollectionView> </scrollview> </Grid>

回答 4 投票 0

跨平台应用程序中的BinaryFormatter

我正在创建跨平台应用程序。我正在尝试在 Android 中反序列化一个文件。 Windows 中一切工作正常。 这是我的代码: [可序列化] //serializacja potrzebna do zapisywani...

回答 1 投票 0

.Net MAUI 中的 CarouselView:CurrentItem 和 Position 不起作用

我注意到我的.Net MAUI 解决方案中的 CarouselView 不会对 Position 或 CurrentItem 更改做出反应。然后我采取了“毛伊岛样本”解决方案(https://github.com/dotnet/maui-samples)和

回答 2 投票 0

错误CS0263:“App”的部分声明不得指定不同的基类

我收到此错误 App.xaml.cs(11,26,11,29): error CS0263: 'App' 的部分声明不得指定不同的基类。 使用 MauiApp1.Services.Core; 使用棱镜; 使用 Prism.Ioc; 使用

回答 1 投票 0

从本机 Xamarin 迁移到什么?

我对 .NET 和 Xamarin 非常陌生,我需要将为 Xamarin.iOS 和 Xamarin.Android 编写的(不是我)应用程序迁移到仍受支持的应用程序。现在有一个 Visual Studio

回答 1 投票 0

Maui 应用程序在导航到某些页面后抛出 UITableView 错误

我目前正在开发适用于 Android 和 iOS 的 MAUI 应用程序。将应用程序部署到 iOS 设备时 - 无论是模拟器还是真实设备 - 我的

回答 1 投票 0

Xamarin.forms iOS 模拟器未启动

我已将我的 Windows 笔记本电脑连接到 2011 年末的 Macbook Pro,以开发 xamarin.forms ios 应用程序。我在 Widows 机器上的 Visual Studio 版本是 16.7.2,xamarin.ios 版本是 13.20.2.2。 我的

回答 3 投票 0

如何在 OS X 上使用 mdtool 构建 .sln 文件

我正在尝试在 /SteamBot-master/SteamBot.sln 中编译 .sln 文件。 经过研究,我发现我只能在 Xamarin Studio 的 mdtool 目录中使用 mdtool。所以我进入...

回答 2 投票 0

Platform.GetRenderer(view) 已过时

所以我使用的兼容性渲染器在两个平台(iOS 和 Android)中都有这个方法 Platform.GetRenderer(view) 但对于 Maui 的 RC 版本,似乎这个方法已被标记为过时...

回答 2 投票 0

更改 DatePicker [Xamarin.Forms] 的颜色

有没有办法在显示日历视图时更改 DatePicker 控件的背景颜色? 请检查随附的屏幕截图。

回答 2 投票 0

应用输出失败,部署构建成功

我正在使用 Xamarin.Forms 构建一个应用程序。它在 iOS 上成功运行,但在 Android 上当我尝试启动它时崩溃了。 根据调试: 构建成功 部署成功...

回答 1 投票 0

如何更改禁用按钮的文本颜色?

目前,我的观点是这样的: 公共无效DisableNextBtn(对象发送者,TextChangedEventArgs e) { if (String.IsNullOrEmpty(emailentry.Text)) { 下一步按钮。

回答 6 投票 0

XFC0045 绑定:在“EcoTracker.ViewModels.UserProfileViewModel”上找不到属性“标题”

我使用 ViewModel 在个人资料页面上显示用户信息和帖子,但在尝试从 UserPosts 集合中获取这些帖子时出现错误 内容页.xaml: 我使用 ViewModel 在个人资料页面上显示用户信息和帖子,但在尝试从 UserPosts 集合中获取这些帖子时出现错误 内容页.xaml: <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:viewModels="clr-namespace:EcoTracker.ViewModels" xmlns:converters="clr-namespace:EcoTracker.Converters" x:DataType="viewModels:UserProfileViewModel" Title="Мой профиль" x:Class="EcoTracker.Views.UserProfilePage"> <ContentPage.Content> <StackLayout> <Image Source="{Binding User.Avatar}" WidthRequest="100" HeightRequest="100" HorizontalOptions="Center" /> </StackLayout> <ListView x:Name="UserPostsListView" ItemsSource="{Binding UserPosts}" HasUnevenRows="True" VerticalOptions="FillAndExpand"> <ListView.ItemTemplate> <DataTemplate> <ViewCell> <Frame HasShadow="True" Margin="10" Padding="10" BackgroundColor="White" CornerRadius="15"> <StackLayout VerticalOptions="FillAndExpand"> <Label Text="{Binding Title}" FontAttributes="Bold" FontSize="16" /> </Frame> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> ContentPage.xaml.cs: public partial class UserProfilePage : ContentPage { private readonly UserProfileViewModel viewModel; public UserProfilePage() { InitializeComponent(); viewModel = new UserProfileViewModel(); BindingContext = viewModel; } protected override async void OnAppearing() { base.OnAppearing(); await viewModel.LoadUserDataAndPostsAsync(); } } 视图模型: public class UserProfileViewModel { private UserData _user; public UserData User { get { return _user; } set { _user = value; OnPropertyChanged(nameof(User)); } } private ObservableCollection<UserPostModel> _userPosts; public ObservableCollection<UserPostModel> UserPosts { get { return _userPosts; } set { _userPosts = value; OnPropertyChanged(nameof(UserPosts)); } } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } public async Task LoadUserDataAndPostsAsync() { User = UserDataHolder.GetUserData(); int userId = User.Id; UserPosts = new ObservableCollection<UserPostModel>(await GetUserPostsAsync(userId)); if (User == null) { User = new UserData(); } int followersCount = await GetFollowersCountAsync(userId); if (followersCount >= 0) { User.FollowersCount = followersCount; } int followingCount = await GetFollowingCountAsync(userId); if (followingCount >= 0) { User.FollowingCount = followingCount; } } } 我看到删除DataType的决定,然后错误消失了,但是页面上既没有显示用户数据也没有发布数据 您需要在模板中添加 DataType <DataTemplate x:DataType="viewModels:UserPosts"> 您可能还需要使用不同的xmlns,具体取决于您的代码结构

回答 1 投票 0

Xamarin BaseExpandableListAdapter 在按钮上的 OnClick 方法中返回错误的视图

我在 Xamarin 中有相同的基本可扩展列表,其中包含包含 EditText 的项目。所以基本上列表中的每个项目都有“加 1”或“减 1”以及显示值的 EditText。它的

回答 1 投票 0

“.NET MAUI 多项目应用程序”和“.NET MAUI 应用程序”之间的区别

有没有人能够向我解释一下以下之间的区别: .NET MAUI 应用程序 .NET MAUI 多项目应用程序 官方 MAUI Windows 页面没有提及第二个项目的模型:...

回答 1 投票 0

如何在xamarin中浏览sqlite数据?

我的应用程序中有一个列表视图,一些数据在填充列表视图之前保存到数据库中。 我的问题是看不到数据,以及如何验证数据是否存储在数据库中。

回答 5 投票 0

我可以从我的 xamarin.ios 项目中删除 mono.android 吗?

在使用xamarin的Visual Studio 2022中,我有一个.sln(3个项目:我的后端项目、myapp.android、myapp.ios),当我在发布模式下构建我的ios应用程序时,在我的文件夹release中,我可以找到mono。安卓和

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.