全新的Xamarin表单,并尝试使用该包开始跨平台应用程序开发。然而,一出校门,我似乎就遇到了一个问题,这个问题在其他地方被问了好几次,但我还没有真正看到实际的回应。目前,我正在尝试在Portable Forms/PCL设置中开发UWP/Universal Windows/Windows 10用户界面。
它是Microsoft Visual Studio 2015 Xaml设计器中的"无法创建WindowsPage实例"错误消息。我在跟随导游https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/所以我使用:Xamarin添加了"xmlns:forms="的行。表格。站台UWP"在将页面标记从page更改为forms:WindowsPage之前的xaml文件,从而引用了xamarin表单包。我确实将所有NuGet包更新到了最新版本。xamarin表单目前大约是2.2。
我最初安装了VS2015Xamarin软件包的默认值,我只是尝试用包含的每个额外组件来修改安装,这样我就不会错过任何东西。我相信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)
希望有人能为我和其他有这个问题的人指明正确的方向。谢谢
这个问题似乎来自Xamarin Forms,根据Xamarin Form的说法,目前还不支持Visual Studio表单设计器,如果你转到网站,它会说"注意:Xamarin.Forms与预先存在的XAML视觉设计器不兼容。"。不幸的是,你不能简单地更改:
public partial class MainPage : ContentPage
至
public partial class MainPage : Page
这将破坏整个目的。你本质上所做的是从WPF而不是Xamarin表单派生。ContentPage是WPF页面的Xamarin Forms版本。另一件需要注意的事情是,即使你能够加载设计器,你也不想使用"工具箱"中的任何控件,这些控件同样只适用于WPF。如果您要使用中的任何一个。Net Controls,它会在Windows下运行,但如果你试图在不同的平台上运行它,它会崩溃,因为Xamarin Forms最终将控件映射到本机操作系统的控件,而工具箱中的控件仅适用于Windows操作系统。