当我尝试构建 MUAI 项目时,出现错误 \xe2\x80\x9cThe project does not know how to run the profile Sample.WinUI"。项目已构建,但无法运行。我正在使用 Visual Studio 2022 预览版(17.0.0 预览版 1.0)和 .NET 版本 6.0.100-preview.5.21302.13
\n我下载了最新的 17.1 预览版并从模板创建了 blazor-maui 应用程序。想要从构建中创建单个 exe。因此单击发布并选择目标 win-x64。当我尝试发布时出现此错误
Build started...
1>------ Build started: Project: BlazorMauiApp2, Configuration: Release Any CPU ------
1>BlazorMauiApp2 -> C:\Dashboard\Workspace\microsoft\windowsforms\BlazorMauiApp2\bin\Release\net6.0-windows10.0.19041\win-x64\BlazorMauiApp2.dll
2>------ Publish started: Project: BlazorMauiApp2, Configuration: Release Any CPU ------
2>Determining projects to restore...
2>The RuntimeIdentifier 'win-x64' is invalid.
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========Run Code Online (Sandbox Code Playgroud)
我想在我的Maui Blazor应用程序中实现浅色和深色主题。如您所知,Blazor 只不过是 Html 和 Css,因此我可以轻松地为我的应用程序的内容实现深色和浅色主题(感谢在html 标记上添加了一个简单的.dark类)。
我面临的问题是毛伊岛应用程序的上部和下部。
让我通过一个例子向您展示。
安卓版本
iOS版本
上图展示了当前的情况:左边是浅色主题,右边是深色主题。正如您所看到的,深色主题对于顶部和底部部分是有问题的(对于 iOS 版本,只有顶部部分是有问题的)。
我想要实现的目标:顶部和底部部分的颜色应与页面内容相同:
如下图所示:切换到深色主题时,所有内容都是彩色的。
我不知道如何为 Maui Blazor 实现这一目标,而且我没有使用 Xamarin 的经验。
你能指出我正确的方向吗?
您可能知道,BlazorWebView使您能够直接在 .NET MAUI 应用程序中托管 Blazor Web 应用程序。
I have a small MAUI app i'm testing with. Im trying to read a file that was part of the deployment. I have the code below, which works great in a Windows deploy of the MAUI app, but crashes in Android. What is the proper cross-platform way to do this?
// TODO get from service or xml
var path = AppDomain.CurrentDomain.BaseDirectory;
//var path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
var fullpath = Path.Combine(path, "Services\\questions.json");
var json = File.ReadAllText(fullpath);
Run Code Online (Sandbox Code Playgroud) 我正在使用当前预览版 11 创建一个 .NET MAUI 应用程序。
当我尝试实现推送通知时,我添加了该Xamarin.Firebase.Messaging包,仅添加此包会导致启动应用程序时崩溃,但出现以下异常:
java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/datatransport/TransportFactory;
在 com.google.firebase.datatransport.TransportRegistrar.getComponents(TransportRegistrar.java:32)
在 com.google.firebase.components.ComponentRuntime.discoverComponents(ComponentRuntime.java:109)
在 com.google.firebase.components.ComponentRuntime.( ComponentRuntime.java:91)
位于 com.google.firebase.components.ComponentRuntime.(ComponentRuntime.java:45)
位于 com.google.firebase.components.ComponentRuntime$Builder.build(ComponentRuntime.java:360)
位于 com.google。 firebase.FirebaseApp.(FirebaseApp.java:427)
位于 com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:299)
位于 com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:267)
位于 com.google。 firebase.FirebaseApp.initializeApp(FirebaseApp.java:252)
在 com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
在 android.content.ContentProvider.attachInfo(ContentProvider.java:2388)
在 android.content .ContentProvider.attachInfo(ContentProvider.java:2358)
位于 com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
位于 android.app.ActivityThread.installProvider(ActivityThread.java:7239)
位于 android.app。 ActivityThread.installContentProviders(ActivityThread.java:6780)
在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:6697)
在 android.app.ActivityThread.access$1300(ActivityThread.java:237)
在 android.app.ActivityThread$H。 handleMessage(ActivityThread.java:1913)
在 android.os.Handler.dispatchMessage(Handler.java:106)
在 android.os.Looper.loop(Looper.java:223)
在 android.app.ActivityThread.main(ActivityThread.java :7656)
在java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
在com.android.internal.os.ZygoteInit.main (ZygoteInit.java:947)
引起:java.lang.ClassNotFoundException:在路径上找不到类“com.google.android.datatransport.TransportFactory”:DexPathList[[zip文件“/data/app/.../” base.apk"],nativeLibraryDirectories=[/data/app/.../lib/x86_64, /data/app/.../base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64] ]
在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:379)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 24更多的
在构建过程中我收到以下警告:
obj\Debug\net6.0-android\lp\153\jl\classes.jar:com/google/firebase/datatransport/TransportRegistrar.class 中发出警告:未找到 …
是否有一个属性可以设置页面全屏显示?
(在 Xamarin 中,可以为 Android 等设置沉浸式模式。)
我刚刚开始使用 .NET MAUI。从一开始,我就很难让 Windows 部署看起来像典型的 Windows 桌面应用程序,我觉得这很奇怪,因为它似乎在很大程度上被宣传为在每个平台上实现本机外观。
我只是想为应用程序的桌面版本实现一个看起来像这样的 TabView - 这是来自 WinUI 库,据我了解 MAUI 使用:
或者,就像经典的 WinForms 那样:
但不幸的是,任何与 .NET MAUI 相关的 Google 搜索似乎都关注移动部署和美观(例如https://learn.microsoft.com/en-us/dotnet/maui/user-interface/pages/tabbedpage):
为桌面版 MAUI 应用程序实现桌面美观是否可行?到目前为止,感觉 MAUI 实际上是一个恰好在桌面上运行的移动 UI 框架。
当我意识到没有直接的帮助器方法可以手动找到执行 toMaui.Graphics.Color或Android.Graphics.Colora 的转换器时,我正在创建一个自定义控件UIKIT.UIColor
我错过了什么吗?在 XF 中我们有类似的方法
XFColor.ToUIColor();
XFColor.ToAndroidColor();
Run Code Online (Sandbox Code Playgroud)
如果我遗漏了什么,请告诉我
为了限制标签的最大行数并指示文本截断,我们使用MaxLines和控件LineBreakMode的属性Label。
这在 Xamarin.Forms 中工作正常,但在 .NET MAUI 中不起作用。
<?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)