如何在.Net MAUI Blazor应用程序中的剃刀组件中使用.Net MAUI控件

zqdjd7g9  于 2023-05-08  发布在  .NET
关注(0)|答案(4)|浏览(184)

我是.Net MAUI的新手,但对Blazor相当有经验。我开始这个新项目,我打算得到的好处MAUI。
我的问题是,我想使用一些本地控件从MAUI,一个例子是底部工作表,但我不知道如何使用这些控件在Blazor。
有没有办法在.Net Blazor MAUI应用程序中使用MAUI的控件?

gstyhher

gstyhher1#

你不能在blazor页面中使用MAUI组件(xaml)。但是,如果需要的话,您可以将blazorwebview与其他MAUI元素混合在一起。我这样做是为了读取QR码:我在主视图中有一个片段,它有一个MAUI QR阅读器,只有当按下Blazor页面中的一个按钮时,我才能看到它,我甚至将MAUI片段覆盖在Blazor视图上。
您还应该知道的是,您可以通过使用DI工具注入的公共对象从MAUI通信到Blazor,反之亦然。该对象将具有方法和事件以允许这种通信。

vatpfxk5

vatpfxk52#

您可以在xaml页面中使用MAUI组件。然后您可以根据需要嵌入BlazorWebView控件。
下面是嵌入了BlazorWebView的MainPage.xaml:

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:b="clr-namespace:Microsoft.AspNetCore.Components.WebView.Maui;assembly=Microsoft.AspNetCore.Components.WebView.Maui"
             xmlns:local="clr-namespace:MauiBlazorApp"
             x:Class="MauiBlazorApp.MainPage"
             BackgroundColor="{DynamicResource PageBackgroundColor}">

    <b:BlazorWebView HostPage="wwwroot/index.html">
        <b:BlazorWebView.RootComponents>
            <b:RootComponent Selector="app" ComponentType="{x:Type local:Main}" />
        </b:BlazorWebView.RootComponents>
    </b:BlazorWebView>

</ContentPage>
yftpprvb

yftpprvb3#

TL;DR您可以从开箱即用的Application类访问一些本机对话框控件。

public async Task<bool> DisplayConfirm(string title, string message, string accept, string cancel)
{
    return await Application.Current.MainPage.DisplayAlert(title, message, accept, cancel);
}

所以我被推荐到这个YouTube视频,它做的正是我想做的。看一看:https://www.youtube.com/watch?v=gTLEIe0SWpI

7qhs6swi

7qhs6swi4#

.NET MAUI应用程序在每个移动的/桌面平台上都是原生的-它们通过现代WebView欢迎Blazor/Web内容。.NET MAUI本机组件可以与Blazor内容混合匹配-本质上是XAML页面内托管的BlazorWebView呈现Web内容。没有什么可以阻止开发人员通过XAML与Blazor UI混合呈现本机UI -有.NET MAUI UI components可以提供帮助。人们还可以通过Blazor和share code在Web/本机应用程序之间驱动更多的应用程序UI。

相关问题