在 WPF 中,我使用了以下的正常组合:
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
d:DataContext="{d:DesignData...}"
Run Code Online (Sandbox Code Playgroud)
允许设置设计时 DataContext。这意味着我在 XAML 中获得了合理的 Intellisense。我意识到上面的代码无法编译,但你明白了。
我刚刚开始使用 MAUI(没有 Blazor),并且希望实现同样的目标 - 这样我就可以告诉 Visual Studio 我的 ContentView 将绑定到特定的对象类型,即 d:BindingContext="" 以这样的方式运行时会被忽略吗?这将使设计 ItemTemplates 变得更加容易!
我已在此处关注 .NET Maui 的 Web 身份验证器的官方文档。它解释了如何有效地执行操作,但他们错过了一些有关回调 URL 的关键信息。根据文章,URL 应该是 myapp://。我认为它可能是类似 thisapp:// 的东西。
myapp:// 的问题是 WebAuthenticatorActivity 不喜欢这样。使用 myapp:// 作为回调 URL 时出现以下错误:
您必须子类化
WebAuthenticatorCallbackActivity并为其创建一个与您的callbackUrl.
在底部我将发布代码。
我还查看了 Dan Siegal 的帮助程序库和他在 MAUI 网络身份验证器上的视频,但他无法让该应用程序在视频中运行。我还在GitHub 上查看了他的示例,他使用“myapp”作为回调 URL。仅使用“myapp”的问题是,当您为 Web 身份验证器指定回调 URL 时, Uri类不喜欢它。这是我得到的错误:
无效 URI:无法确定 URI 的格式。
所以基本上我不能使用“myapp://”或“myapp”并决定将两者结合起来。对于回调 URL,我使用“myapp://”,对于 WebAuthenticatorActivity,我使用“myapp”。这确实有效,但仍然存在一个问题。在 Google 控制台上,它需要重定向 URL。我尝试过“myapp://”或“myapp”,但它不允许这样做:
在网上搜索后,我发现一篇文章提到我应该使用:https://mysite/signin-google。我已根据文档并使用 Dan Siegal 的库正确设置了 API。
因此,如果我在 Google 控制台上使用“myapp://”作为 Web 身份验证器的回调 URL,使用“myapp”作为 WebAuthenticatorActivity 和 https://mysite/signin-google,那么一切都会正常工作,直到 Google 尝试重定向从浏览器返回我的应用程序。这是我得到的错误:
无法找到此 mysite 页面。未找到该网址的网页:https://mysite/signin-google
归结为:
我应该使用什么值:
每次我尝试在 Windows 计算机上调试我的 MAUI 应用程序时都会遇到此问题。它看起来像这样:
DEP0700: Registration of the app failed. [0x80070005] Deployment Register operation with target volume D: on Package 4C30989C-021C-4C65-A99F-1EF165615662_1.0.0.1_x64_9n4h1lOyvjzm from: (AppxManifest.xml) failed with error 0x80070005. See http:// ClickerSomethingTestApp go.microsoft.com/fwlink/?Linkld=235160 for help diagnosing app deployment issues.
Run Code Online (Sandbox Code Playgroud)
新项目和现有项目都会发生这种情况。
编辑:我将项目文件夹移动到默认的 Visual Studio 项目位置,现在它可以工作了。也适用于 C 盘上的任何位置。不过我希望我的项目位于 D 驱动器上。有任何想法吗?
我在将值绑定到ContentView我所做的自定义时遇到问题。
我的MainPage用途CustomFrameView是ContentView.
我的CustomFrameView有一根绳子BindableProperty。当我手动输入字符串时,这可以正常工作,但当我尝试使用绑定时,这会失败。我确信绑定应该有效,因为它在Label.
任何人都知道为什么它不起作用?
主页.xaml
<StackLayout>
<!-- DOES work -->
<Label Text="{Binding Name}"/>
<!-- DOES work-->
<controls:CustomFrameView TestName="Test456"/>
<!-- DOES NOT work-->
<controls:CustomFrameView TestName="{Binding Name}"/>
</StackLayout>
Run Code Online (Sandbox Code Playgroud)
MainPage.xaml.cs
<StackLayout>
<!-- DOES work -->
<Label Text="{Binding Name}"/>
<!-- DOES work-->
<controls:CustomFrameView TestName="Test456"/>
<!-- DOES NOT work-->
<controls:CustomFrameView TestName="{Binding Name}"/>
</StackLayout>
Run Code Online (Sandbox Code Playgroud)
MainPageViewModel.cs
public MainPage()
{
InitializeComponent();
BindingContext = new MainPageViewModel();
}
Run Code Online (Sandbox Code Playgroud)
CustomFrameView.xaml.cs
public partial class MainPageViewModel : ObservableObject
{ …Run Code Online (Sandbox Code Playgroud) 我在 .Net Maui 有一个选项卡式页面,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.Pages.SomeClass"
xmlns:Controls="clr-namespace:MyApp.Resources.Controls"
xmlns:local="clr-namespace:MyApp.Pages"
Title="Some title">
<local:Page1 />
<local:Page2 />
<local:Page3 />
</TabbedPage>
Run Code Online (Sandbox Code Playgroud)
这些页面或多或少相同:
<?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="MyApp.Pages.Page1"
xmlns:Controls="clr-namespace:MyApp.Resources.Controls"
xmlns:VerticalStackLayout="clr-namespace:MyApp.Resources.Controls"
Title="Vente">
<VerticalStackLayout>
<Label Text="Page 1"/>
</VerticalStackLayout>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)
C# 代码:
public partial class Page1: ContentPage {
public Page1() {
InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)
选项卡式页面在 Windows 上正常工作:
然而,在物理 Android 设备上,打开选项卡式页面时出现以下异常。这些页面都没有 C# 内容。它们100%是空的。
0xFFFFFFFFFFFFFFFF in Android.Runtime.JNIEnv.monodroid_debugger_unhandled_exception C#
0x1A in Android.Runtime.JNINativeWrapper._unhandled_exception at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:12,5 C#
0x23 in Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPLLL_L at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:353,26 C#
0xEE …Run Code Online (Sandbox Code Playgroud) 我是 .Net MAUI 的新手,但对 Blazor 相当有经验。我正在开始这个新项目,我打算享受毛伊岛的好处。
我的问题是,我想使用 MAUI 中的一些本机控件,例如底部工作表,但我不知道如何在 Blazor 中使用这些控件。
有没有办法在 .Net Blazor MAUI 应用程序中使用 MAUI 的控件?
我试图根据设置为浅色或深色主题的设备来更改 StatusBar 的颜色/样式,但运气不佳。
应用程序加载后,以下 XAML 即可运行,但在启动屏幕上不起作用:
<ContentPage.Behaviors>
<toolkit:StatusBarBehavior StatusBarColor="#F8F9FB" StatusBarStyle="DarkContent" />
</ContentPage.Behaviors>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,上面的 XAML 似乎不会在闪屏期间影响 StatusBar,因为它仍然显示默认的紫色和白色文本。知道如何在应用程序显示启动屏幕时更改状态栏吗?
最终目标是根据设置为浅色或深色主题的设备相应地设置状态栏颜色和图标颜色。例如,如果设备设置为使用深色主题,则显示启动画面和应用程序外壳时的状态栏应为带有浅色文本/图标的深色背景。当设备设置为使用浅色主题时,显示启动画面和应用程序外壳的状态栏应该是带有深色文本/图标的浅色背景。
我已经检查了许多与此相关的现有问题,但它们似乎都已过时,因为我正在使用 API 33。
我正在尝试从 Xamarin 迁移到 MAUI。
下面的代码完美唤醒。
Xamarin 项目:
DependencyService.Get<IMyService>().Test();
Run Code Online (Sandbox Code Playgroud)
安卓:
[assembly: Dependency(typeof(MyService))]
namespace MyProject.Android
{
public class MyService: IMyService
{
public void Test(){
////
}
}
}
Run Code Online (Sandbox Code Playgroud)
IOS 和 Windows 依此类推。
但 MAUI 的DependencyService.Get 始终返回null。我找不到必须做出哪些新的改变。在我的主项目中重新编写基于 DependencyService 的所有代码将是痛苦的。
这种情况下应该做哪些改变呢?
我正在开发一个针对 iOS 和 Android 的移动应用程序,我开始在 Windows 上的 Visual Studio 2022 中开发它,但由于 iOS 模拟器无法在 Windows 上运行的问题,已转移到 MacOS。
在 Mac (Ventura 13.0) 上,我安装了 XCode 14.1、Visual Studio For Mac 17.3.8 和 Jetbrains Rider 2022.2.3。我尝试使用 Rider,因为它对我来说在 Mac 上是最一致的体验,因为我通常在 Windows 上使用它。
我已经将应用程序开发到了我想在物理设备上测试它的程度,它在两个平台的模拟器上部署和运行都没有问题(通过 Rider 在 MacOS 上),并且在我的 Android 设备上部署和运行也是一样的。当尝试将其部署到物理 iPhone 14 (16.1) 时,出现了问题,我在部署目标下拉列表中选择了该设备,并且构建正常,但当它尝试将应用程序部署到设备时,出现以下错误。我已经检查过,该框架不在 XCode 中,并且我不知道从哪里获取它(如果这是真正的问题)。
应用程序从 Visual Studio for Mac 构建并部署到 iOS 设备不会出现任何问题,但对于 Android 则不然,与 Android 相比,必须使用不同的 IDE 进行物理 iOS 测试是一个问题。
事实上它可以很好地从 VS 部署到 iOs 设备,这让我认为这与配置文件有关,下面的错误是一个转移注意力的问题,因为我有一些人试图让这一切都工作在第一位。我在项目调试配置中注意到的一件事是,配置配置文件说Unable to parse application identifier from Info.plist我不知道应该在 Info.plist 中设置什么来添加它。签名身份设置为 …
我正在尝试在 VSCode 中建立一个项目来构建和运行 Windows 桌面应用程序:WinUI / MAUI / UNO,因为我们的团队主要使用 VSCode。
我知道 WinUI 3 项目建议使用 Visual Studio 2022 Microsoft 文档都没有明确指出
我使用可用模板在 Visual Studio 2022 中创建了一个工作示例 WinUI 3 项目。我尝试在 VSCode 中运行此示例失败(请参阅下面的错误)。到目前为止还没有解决方法。任何帮助深表感谢。
请随意修改我的示例代码/存储库以使其在 VSCode 中运行。
dotnet build / run 返回以下错误,
如果是