标签: maui

MAUI 项目,无法导航到新页面

我在 MAUI 中遇到了一个错误,我只是想知道我是否是唯一的一个,或者我在这个新环境中是否做错了什么:)

之前我总是能够在通过单击按钮导航到新页面时执行此操作:

private async void OnButtonClicked(object sender, EventArgs e)
       {
           await Navigation.PushAsync(new Page1());
       } 
Run Code Online (Sandbox Code Playgroud)

但它似乎不再起作用了,这就是我的 Page1 在 C# 代码中的样子:

    public partial class Page1 : ContentPage
    {
        public Page1()
        {
           InitializeComponent();
        }

        protected override async void OnAppearing()
        {
            base.OnAppearing();

            await MainThread.InvokeOnMainThreadAsync(async () => { await LoadRecipes(); });
        }

        private async Task LoadRecipes() 
        {

           //no code yet
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码并单击按钮时,没有任何反应。

c# maui

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

将 Serilog 与 .NET MAUI 结合使用

我有一个非常简单的 .NET MAUI 应用程序(不是 Blazor 应用程序)。我已经安装了 Seriolog 和 Serilog.Extensions.Logging (这样我就可以使用 AppCenter)。我的启动代码中有以下内容来初始化 Serilog

public static MauiApp CreateMauiApp()
{
    // set up logging
    var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    path = Path.Combine(path, "debugcode.txt");

    Log.Logger = new LoggerConfiguration()
        //.MinimumLevel.Debug()
        .WriteTo.File(path)
        .WriteTo.AppCenterCrashes(restrictedToMinimumLevel: LogEventLevel.Information)
        .WriteTo.Console()
        .CreateLogger();

    var builder = MauiApp.CreateBuilder();
    builder
        .UseMauiApp<App>()
        .ConfigureFonts(fonts =>
        {
            fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
        })
        .Logging.AddSerilog(Log.Logger);


    return builder.Build();
}
Run Code Online (Sandbox Code Playgroud)

这编译没有问题。我已将日志记录代码添加到 main.xaml.cs 中(该代码只是 VisualStudio 附带的默认 .NET MAUI 测试应用程序)。最小调试行已被注释掉,但如果不注释掉也没有什么区别。

protected override void OnDisappearing()
{
    base.OnDisappearing();
    Log.CloseAndFlush();
}

void OnCounterClicked(object sender, EventArgs e)
{
    count++; …
Run Code Online (Sandbox Code Playgroud)

maui

9
推荐指数
1
解决办法
6413
查看次数

如何在毛伊岛隐藏默认开关“开/关”文本?

我在 .Net Maui 有一个开关控件:

<Switch IsToggled="true" Grid.Row="3" Grid.Column="1" VerticalOptions="Center"/>
Run Code Online (Sandbox Code Playgroud)

默认情况下,它根据其状态显示“开/关”标签。我希望它什么也不显示。

有什么方法可以隐藏/删除它吗?

在此输入图像描述

maui

8
推荐指数
1
解决办法
3667
查看次数

如何在 MAUI 项目中包含每个平台的现有 C++ 库?

我们有一个针对每个平台构建的 C++ 库,即适用于 Windows 的 .dll、适用于 Android 的 .so 以及适用于 iOS 的 .a。尝试以下方法将 .so 文件包含在 Android 版 MAUI 应用程序中。(其他平台待定)-

  • Platforms -> Android -> lib -> arm64-v8a文件夹
  • 设置 .so 文件属性:Build Action = AndroidNativeLibrary
  • 用过的JavaSystem.LoadLibrary(lib name);
  • 为导入的库实现了常用的 PInvoke 类

但是,代码失败了

UnsatisfiedLinkError异常:dlopen失败:在Java.Interop.JniEnvironment.StaticMethods.CallStaticVoidMethod(JniObjectReference类型,JniMethodInfo方法,JniArgumentValue * args)中找不到库“lib name.so”在Java.Interop.JniEnvironment.StaticMethods.CallStaticVoidMethod(JniObjectReference类型) 、JniMethodInfo 方法、JniArgumentValue* args) 在 /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop/JniEnvironment.g.cs:line 13250 at Java /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers 中的.Interop.JniPeerMembers.JniStaticMethods.InvokeVoidMethod(字符串编码成员,JniArgumentValue* 参数)。 JniStaticMethods.cs:第 41 行位于 /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/net6.0/android- 中的 Java.Lang.JavaSystem.LoadLibrary(String libname) 31/mcw/Java.Lang.JavaSystem.cs:第339行

在 VS 输出窗口中,可以看到以下消息 -

“共享库‘库名称’未加载,p/invoke‘方法名称’可能会失败”

尝试移动 lib 目录,但没有成功。

我们在这里缺少什么?

还有使用现有 C++ 库的 MAUI 示例吗?支持真的足以满足生产使用吗?

--- 更新 …

c++ android maui .net-maui

8
推荐指数
1
解决办法
2310
查看次数

导航到 .NET Maui 应用程序中的启动页面

似乎是一个简单的问题,但我一直无法找到简单的答案。本质上,我想根据某些存储的状态选择应用程序中的哪个页面启动。我在 AppShell 构造函数中添加了 GoToAsync 调用,但这不起作用 - 这是有道理的,因为 AppShell 尚未完全构建。

我找到了这个答案,但感觉它有点回避这个问题:

Maui AppShell - 打开导航

哪里是注入一些代码的最佳位置,这些代码将在启动时运行一次并可以成功地将 .NET Maui 应用程序导航到所选页面?

app-shell maui

8
推荐指数
1
解决办法
6721
查看次数

将现有 Blazor Web Assembly 应用程序包装到 .NET MAUI 混合应用程序中

我观看了有关如何创建 .NET MAUI Blazor 应用程序的教程

https://www.youtube.com/watch?v=bnoCU5XGBh4

但是,我有一个现有的 Blazor Web Assembly 应用程序,将其包装到 BlazorWebView 中的最佳推荐方法是什么?我已经四处寻找教程,但由于它相当新,所以内容不多。

blazor blazor-webassembly maui maui-blazor blazor-hybrid

8
推荐指数
1
解决办法
3552
查看次数

Visual Studio 2022 忽略 .NET MAUI 的选定框架上下文

我正在尝试将 iOS 平台特定的代码添加到我的 .NET MAUI 应用程序中。

我的目标是 iPhone net6.0-ios

在此输入图像描述

但是,Visual Studio 认为我的目标是 Android:

在此输入图像描述

编译和运行应用程序工作正常(iOS 预处理器指令中的断点被击中),但是必须在条件预处理器指令之外实现特定于 iOS 的代码(有一堆警告说类型不可用)是很麻烦的能够获得一些 IntelliSense。

我怀疑这是一个错误,但很好奇是否有任何解决方法?

编辑:不是一个错误,我只是一个白痴,没有意识到代码编辑器和调试目标不一定是同一个。

ios maui visual-studio-2022 maui-ios

8
推荐指数
1
解决办法
539
查看次数

MAUI 应用程序底部的 TabBar

我使用默认应用程序在 Visual Studio 中创建了一个新的 MAUI 应用程序。我试图在底部添加一个 TabBar,但它总是出现在顶部(参见屏幕截图)。我见过的所有示例和我读过的文档都表明它应该位于底部。我究竟做错了什么?这是在 Windows 上。

这是AppShell.xaml

<?xml version="1.0" encoding="UTF-8" ?>
<Shell
    x:Class="letseat.AppShell"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:letseat"
    >


    <TabBar Route="Home">
        <Tab Icon="dotnet_bot.png" Title="Main">
            <ShellContent ContentTemplate="{DataTemplate local:MainPage}"/>
        </Tab>
        <Tab Icon="dotnet_bot.png" Title="Profile">
            <ShellContent ContentTemplate="{DataTemplate local:ProfilePage}"/>
        </Tab>
        <Tab Icon="dotnet_bot.png" Title="Test">
            <ShellContent ContentTemplate="{DataTemplate local:ProfilePage}"/>
        </Tab>
    </TabBar>
</Shell>
Run Code Online (Sandbox Code Playgroud)

以及结果 截图

.net c# maui

8
推荐指数
1
解决办法
1490
查看次数

MAUI &lt;CollectionView.EmptyView&gt; 不会显示,直到手动更改文本

我的 collectionView 中有这段代码:

<RefreshView>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="60" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

        <CollectionView
            ItemsSource="{Binding Comments}"
            SelectionMode="Single">

            <CollectionView.ItemsLayout>
                <LinearItemsLayout Orientation="Vertical" ItemSpacing="5" />
            </CollectionView.ItemsLayout>

            <CollectionView.ItemTemplate>
                <DataTemplate x:DataType="model:Comment">
                    <Frame Style="{StaticResource CardView}" CornerRadius="10">                     
                        <Grid RowDefinitions="Auto, Auto, Auto, *" ColumnDefinitions="80, 250" ColumnSpacing="5">
                            ...
                        </Grid>
                    </Frame>
                </DataTemplate>
            </CollectionView.ItemTemplate>

            <CollectionView.EmptyView>
                <ContentView>
                    <StackLayout>
                        <Label
                            Text="Some text here"
                            HorizontalOptions="Fill"
                            HorizontalTextAlignment="Center" />
                    </StackLayout>
                </ContentView>
            </CollectionView.EmptyView>
        </CollectionView>

        <Button
                ...
        </Button>

        <Button
                ...
        </Button>
    </Grid>
</RefreshView>
Run Code Online (Sandbox Code Playgroud)

奇怪的行为......当我用空集合启动程序时,当然,我看到......什么也没有。无标签。

运行时,我稍微更改文本,无论如何,我在末尾插入一个*,例如:Text =“Some text gone here *”,瞧,突然我的文本在中间正确显示我的屏幕 - 预期的行为!

我在模拟器和Android本地设备中都尝试过。同样的行为。 …

collectionview maui

8
推荐指数
1
解决办法
1792
查看次数

无法运行 MAUI 项目,出现以下错误 - 需要先部署该项目,然后才能进行调试。请在配置管理器中启用部署

在此输入图像描述当我尝试运行新的 MAUI 项目时,会弹出以下错误。有人可以帮我解决这个问题吗?我还在配置管理器中勾选了部署和构建

错误消息 - 需要先部署项目,然后才能进行调试。请在配置管理器中启用部署

我在配置管理器中勾选了“部署”选项仍然遇到问题

c# visual-studio maui

8
推荐指数
1
解决办法
2593
查看次数