Xamarin.Forms 在新的 window 在 Xamarin.Mac 项目中

Xamarin.Forms in new window in Xamarin.Mac project

我正在尝试在我的本机 Xamarin.Mac 应用程序中嵌入使用 Xamarin.Forms 创建的 XAML 页面。并以模式打开此 window。但问题是打开 window 忽略大小 680х425 并打开为非常小的正方形。我的问题在哪里? 这是我的代码:

            this.window = new NSWindow(new CGRect(new CGPoint(100, 100), new CGSize(680, 425)), NSWindowStyle.Closable, NSBackingStore.Buffered, false);          

            PickInstallPath pickInstallPath = new();

            this.window.ContentViewController = pickInstallPath.CreateViewController();

            NSApplication.SharedApplication.RunModalForWindow(this.window);

P.S 如果我删除设置 ContentViewController 的行 window 以正常大小打开。

在原生项目中消费Xamarin.FormsContentPage派生页面的流程如下:

将 Xamarin.Forms NuGet 包添加到本机项目。

将 ContentPage 派生页面和任何依赖项添加到本机项目。

调用Forms.Init方法。

构建 ContentPage 派生页面的实例,并使用以下扩展方法之一将其转换为适当的本机类型:

为 iOS 创建ViewController,为 Android 创建 ViewController,为 UWP 创建 CreateFrameworkElement。 使用本机导航 API.

导航到 ContentPage 派生页面的本机类型表示

您可以参考此文档获取更多信息https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/native-forms

编辑: 你可能想调用 SetFrame AFTER 你设置了 ContentViewController 因为视图控制器内容的框架将覆盖 window 的设置框架, 或者您可以设置 ViewController 内容的框架,而根本不设置 window 框架。 您可以添加如下代码:

Window.ContentViewController.PreferredContentSize = size;