标签: maui

在 .NET MAUI 应用程序中创建和使用 HttpClient

我们是否在 .NET MAUI 应用程序中创建/使用 an HttpClient,就像在 Web 或 API 应用程序中一样?具体来说,我将我的HttpClient' 添加到我的应用程序中Program.cs使用IHttpFactory-- 见下文:

builder.Services.AddHttpClient("NamedClient1", config =>
{
    var url = currentState == "production"
        ? "https://my-production-url"
        : "https://sandbox-url";
    config.BaseAddress = new Uri(url);
});
Run Code Online (Sandbox Code Playgroud)

我理解 .NET MAUI 的想法是标准化我们处理事物的方式。当我尝试在 .NET MAUI 应用程序中添加该行时builder.Services,IntelliSense 并不建议AddHttpClient

xamarin xamarin.forms maui .net-maui

7
推荐指数
1
解决办法
1万
查看次数

MAUI 图形颜色到原生 Android/iOS 颜色

当我意识到没有直接的帮助器方法可以手动找到执行 toMaui.Graphics.ColorAndroid.Graphics.Colora 的转换器时,我正在创建一个自定义控件UIKIT.UIColor

我错过了什么吗?在 XF 中我们有类似的方法

XFColor.ToUIColor();
XFColor.ToAndroidColor();
Run Code Online (Sandbox Code Playgroud)

如果我遗漏了什么,请告诉我

c# maui .net-6.0 .net-maui

6
推荐指数
1
解决办法
2164
查看次数

标签控件的 MaxLine 和 LineBreakMode 属性无法正常工作

为了限制标签的最大行数并指示文本截断,我们使用MaxLines和控件LineBreakMode的属性Label

这在 Xamarin.Forms 中工作正常,但在 .NET MAUI 中不起作用。

主页.xaml

<?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="Maui_POC.MainPage">

    <ScrollView>
        <StackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Image
                Source="dotnet_bot.png"
                SemanticProperties.Description="Cute dot net bot waving hi to you!"
                HeightRequest="200"
                HorizontalOptions="Center" />

            <Label
                Text="Hello, World!"
                SemanticProperties.HeadingLevel="Level1"
                FontSize="32"
                HorizontalOptions="Center" />

            <Label
                Text="Welcome to .NET Multi-platform App UI, Cute dot net bot waving hi to you!"
                SemanticProperties.HeadingLevel="Level2"
                FontSize="18"
                MaxLines="2"
                LineBreakMode="TailTruncation"
                HorizontalOptions="Center" />

            <Button
                x:Name="CounterBtn"
                Text="Click me"
                SemanticProperties.Hint="Counts the number of times you click"
                Clicked="OnCounterClicked" …
Run Code Online (Sandbox Code Playgroud)

maui

6
推荐指数
1
解决办法
3736
查看次数

.NET Maui Horizo​​ntalStackLayout 展开以填充剩余窗口

我正在尝试设计一个界面,其中左侧有一个窗格,另一个窗格可以扩展以适应剩余空间。我尝试使用 执行此操作HorizontalStackLayout,但无论我做什么,如果不设置特定的 ,我都无法显示第二个窗格WidthRequest。这是我想要的外观的演示:

在此输入图像描述

这就是我正在尝试的,但选项组合似乎不起作用:

<HorizontalStackLayout HorizontalOptions="FillAndExpand">
    <BoxView BackgroundColor="Green" HorizontalOptions="Start" WidthRequest="200"></BoxView>
    <BoxView BackgroundColor="Blue" HorizontalOptions="FillAndExpand"></BoxView>
</HorizontalStackLayout> 
Run Code Online (Sandbox Code Playgroud)

这就是我在毛伊岛没有设置明确宽度时所得到的一切:在此输入图像描述

我尝试过“开始”、“开始并展开”、“填充并展开”,但没有任何效果。我究竟做错了什么?

.net xaml maui

6
推荐指数
1
解决办法
9606
查看次数

.Maui 静态 Web 资源构建问题

严重性代码说明项目文件行抑制状态错误清单文件“obj\Debug\net6.0-android\android-x86\staticwebassets.build.json”未找到。MauiApp3 C:\Program Files\dotnet\sdk\6.0.401\Sdks\Microsoft.NET.Sdk.Razor\targets\Microsoft.NET.Sdk.Razor.StaticWebAssets.targets 680

我正在努力让 Android 应用程序正常运行。我的 Windows 窗体将构建,但对于 arm、arm-64 和 x86-64,我也收到上述错误。我只是点击创建项目并尝试立即运行而不进行任何更改。

我的 android SDK 应该正确匹配。我有 31.2.1 Android 模拟器和 Android 11.0 (API 30) 操作系统 我创建的模拟器是 Pixel 5 11.0 Android。

.net android xamarin maui

6
推荐指数
1
解决办法
3247
查看次数

在 Windows 上启动 MAUI 应用程序 exe 的最简单方法?

有没有办法在 Windows 桌面上运行 exe,而无需执行安装程序和部署步骤?我注意到所需的所有内容最终都位于 bin\debug\win10-x64 下的 AppX 文件夹中,但由于 App Store 集成,它似乎只能通过开始菜单快捷方式启动。有没有办法手动创建快捷方式?我处于开发/质量保证环境中,我们共享并传递实用程序,每次运行安装程序都有点痛苦。

如果需要的话,我很乐意制作一个简单的注册表脚本。看起来好像添加了一个参考HKLM\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\Deployment\Package\*

详细信息似乎在这里设置: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\StateRepository\Cache\Application\Data\

c# windows maui

6
推荐指数
2
解决办法
5137
查看次数

.NET MAUI 透明状态栏

如何使用 .NET MAUI 在 Android 上使状态栏透明并显示其后面的内容?

我看过这篇文章,有没有办法使用 C# 重新创建它?

类似于谷歌地图: 在此输入图像描述

c# android maui .net-maui

6
推荐指数
1
解决办法
3906
查看次数

MAUI:如何在 SingleProject 中将部分类与 net7.0 作为 TargetFramework 一起用于特定于平台的实现?

我正在使用部分类在 .NET MAUI 应用程序中实现特定于平台的行为:

干:

public partial class MyServices
{
    public partial void DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

Android/iOS/MacCatalyst/Windows/Tizen 特定实现都与此类似:

public partial class MyServices
{
    public partial void DoSomething()
    {
        // Android/iOS/MacCatalyst/Windows/Tizen specific implementation
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,对于 MAUI 来说很正常(尽管特定于平台的实现可以以不同的方式完成,但是部分类方法对于 MAUI 来说很常见并且看起来很方便)。

现在,为了能够执行单元测试 (xUnit),需要将目标添加net7.0SingleProject.csproj<TargetFrameworks>文件中,如下所示:

<PropertyGroup>
    <TargetFrameworks>net7.0;net7.0-android;net7.0-ios;net7.0-maccatalyst</TargetFrameworks>
    <TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net7.0-windows10.0.19041.0</TargetFrameworks>

    <!-- skipping irrelevant stuff here... -->

    <OutputType Condition="'$(TargetFramework)' != 'net7.0'">Exe</OutputType>
    
    <!-- skipping irrelevant stuff here... -->
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

这正如 Gerald Versluis 在他的YouTube 视频中所描述的那样。相关代码示例可以在这里找到:https://github.com/jfversluis/MauixUnitTestSample/blob/main/MauixUnitTestSample/MauixUnitTestSample.csproj#L5

这就是我的问题开始的地方:

由于net7.0目标和类的缺失实现 …

.net c# maui .net-maui

6
推荐指数
1
解决办法
2095
查看次数

将 .NET MAUI 部署到 IOS 模拟器错误:simctl 返回退出代码 22

问题

我在使用 .NET Maui 部署到任何 iOS 模拟器时遇到问题。我收到以下错误:无法在设备“iOS 15.5 - iPhone 11”上安装应用程序“com.app.name”,simctl 返回退出代码 22。

错误信息

Mac 构建服务器上的控制台报告“应用程序 Info.plist 不包含有效的 CFBundleVersion”。

信息。Mac 上部署文件夹中的列表显示以下内容: 捆绑包版本 = 1 捆绑包版本字符串(短)= 2.0

信息。列表

我尝试过的

我已经在 Visual Studio 中使用多个值和设置修改了版本和构建,但没有效果。我已使用“重置内容和设置”重置了模拟器。

其他注意事项

我可以使用相同的版本和构建设置,使用新的 .NET Maui 项目部署到同一个模拟器。尽管它只是加载启动画面然后黑屏,但它确实部署了。

这在某个时候是有效的,我不确定它具体是什么时候坏掉的。

我相信问题出在我的项目上,我只是不确定下一步该去哪里。任何关于下一步该去哪里的帮助将不胜感激。

[更新] Xamarin 与毛伊岛

22 年 10 月 12 日更新 - 我将当前的生产版本(使用 Xamarin Forms)与使用相同版本号的 Maui 版本进行了比较。Xamarin Forms 项目在 iOS 模拟器中运行。除了毛伊岛特有的内容之外,Info.plist 文件是相同的。

plist比较

maui

6
推荐指数
1
解决办法
1509
查看次数

Visual Studio 更新 17.8.0 终止了我的 MAUI 应用程序,该应用程序直到今天早上都运行良好

我在这里很绝望。我的截止日期即将到来,而我的 VisualStudio 现在完全混乱了。

直到今天早上,我的开发机器上的“Pixel5 - API 33”下有几个 MAUI 解决方案运行良好。

我的错 - 我有可怕的灵感接受 Visual Studio 2022 提出的更新,因此从 Visual Studio 版本 I-Don't-Remember-Which-Version-I-Had 到版本 17.8.0

现在,我以前的所有 MAUI 解决方案都将无法工作 - 它们无法在 Visual Studio 中作为 MAUI 应用程序运行。项目属性甚至不包含所需的部分。

我只能将旧的 MAUI 应用程序作为 Windows 机器运行,而不能运行其他任何东西。

我已经开始了一个新的虚拟 MAUI 项目,完全不做任何事情,你知道,模板,并且它具有与我之前的 MAUI 项目完全不同的属性。对于这个,我可以看到 Pixel5 - API 33、Windows 机器、Android 模拟器、iOS 本地设备、iOS 模拟器等 - 整个列表,你知道。

但对于我的“旧”MAUI 应用程序(从今天早上开始“旧”)我只能看到 Windows 机器。当然,它们的属性页面现在完全不同了。

发生了什么 ?Visual Studio 更新是否搞乱了我的解决方案?我确信有。我在 Notepad++ 中比较了两个 sln 文件,但找不到差异。

这就是我对 MAUI 应用程序的所有选择:

选择

这些是所需的选择:

在此输入图像描述

现在这些是我的项目属性:

在此输入图像描述

这些是我应该拥有的项目属性:

在此输入图像描述

android visual-studio maui

6
推荐指数
1
解决办法
692
查看次数

标签 统计

maui ×10

.net-maui ×4

c# ×4

.net ×3

android ×3

xamarin ×2

.net-6.0 ×1

visual-studio ×1

windows ×1

xamarin.forms ×1

xaml ×1