4

全新的 Xamarin 表单在这里并尝试使用该包开始跨平台应用程序开发。然而,一出门我似乎遇到了一个在其他地方被问过几次但我还没有真正看到实际回应的问题。目前,我正在尝试在便携式表单/PCL 设置中使用 UWP/通用 Windows/Windows 10 用户界面。

这是 Microsoft Visual Studio 2015 Xaml 设计器中的无法创建 WindowsPage 的实例错误消息。我正在遵循https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/上的指南,所以我添加了“xmlns:forms="using:Xamarin.Forms .Platform.UWP”在将页面标记从 Page 更改为 forms:WindowsPage 之前的 xaml 文件,因此引用了 xamarin 表单包。我确实将所有 NuGet 包更新到了​​最新版本。Xamarin 表单目前类似于 2.2。

我最初安装了 VS2015 Xamarin 包的默认值,我只是尝试使用包含的每个额外组件来修改该安装,所以我认为我没有遗漏任何东西。我相信 Xamarin 已正确安装,因为它显示在“帮助”->“Xamarin”菜单中,我可以从 Xamarin 表单包中选择新的解决方案,但我不确定是什么导致了问题。

这是 XAML 代码

<forms:WindowsPage
    x:Class="SoloPathfinderPCL.UWP.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:forms="using:Xamarin.Forms.Platform.UWP"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:SoloPathfinderPCL.UWP"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

</forms:WindowsPage>

这是我的异常堆栈跟踪:无法创建“WindowsPage”的实例。

at Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.InstanceBuilderOperations.InstantiateType(Type type, Boolean supportInternal)
   at Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ClrObjectInstanceBuilder.InstantiateTargetType(IInstanceBuilderContext context, ViewNode viewNode)
   at Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ClrObjectInstanceBuilder.Instantiate(IInstanceBuilderContext context, ViewNode viewNode)
   at Microsoft.VisualStudio.DesignTools.WindowsXamlDesigner.InstanceBuilders.FrameworkElementInstanceBuilder.Instantiate(IInstanceBuilderContext context, ViewNode viewNode)
   at Microsoft.VisualStudio.DesignTools.WindowsXamlDesigner.InstanceBuilders.UserControlInstanceBuilder.Instantiate(IInstanceBuilderContext context, ViewNode viewNode)
   at Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ViewNodeManager.CreateInstance(IInstanceBuilder builder, ViewNode viewNode)

希望有人能指出我和其他有这个问题的人正确的方向。谢谢。

4

1 回答 1

1

看起来这个问题来自 Xamarin Forms,据 Xamarin Forms 称,截至目前,不支持 Visual Studio Form Designer,如果您访问该网站,它会声明“注意:Xamarin.Forms 与预先存在的 XAML 不兼容视觉设计师。”。不幸的是,你不能简单地改变:

public partial class MainPage : ContentPage

public partial class MainPage : Page

这将破坏整个目的。你本质上做的是从 WPF 而不是 Xamarin Forms 派生。ContentPage 是 WPF 页面的 Xamarin Forms 版本。另一件需要注意的事情是,即使您能够让设计器加载您也不想使用“工具箱”中的任何控件,这些也仅适用于 WPF。如果您要使用任何 .Net 控件,它将在 Windows 下运行,但如果您尝试在不同的平台下运行它,它会崩溃,因为 Xamarin Forms 最终会将控件映射到本机操作系统的控件以及Toolbox 仅适用于 Windows 操作系统。

于 2017-02-09T19:31:33.090 回答