Как разрешить исключение: не удается создать экземпляр "WindowsPage"
Совершенно новый для Xamarin формы здесь и пытается начать кроссплатформенную разработку приложений с помощью пакета. Однако, прямо из ворот я, кажется, сталкиваюсь с проблемой, которая задавалась несколько раз в другом месте, но я действительно не видел фактического ответа. В настоящее время я пытаюсь работать с пользовательским интерфейсом UWP / Universal Windows / Windows 10 в настройке Portable Forms / PCL.
Это не удается создать экземпляр сообщения об ошибке WindowsPage в конструкторе Xaml Microsoft Visual Studio 2015. Я следую руководству по адресу https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/ поэтому я добавил строку для "xmlns:forms=" используя:Xamarin.Forms.Platform.UWP"файл xaml перед изменением тега страницы с Page на формы:WindowsPage, таким образом ссылаясь на пакет форм xamarin. Я обновил все пакеты NuGet до последней версии. В настоящий момент формы Xamarin похожи на 2.2.
Первоначально я установил значения по умолчанию для пакета Xamarin VS2015, и я просто попытался изменить эту установку, добавив каждый дополнительный компонент, так что я не думаю, что там что-то отсутствует. Я считаю, что 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)
Надеюсь, что кто-то может указать мне и всем остальным, имеющим эту проблему в правильном направлении. Благодарю.
1 ответ
Похоже, что эта проблема из форм Xamarin. Согласно Xamarin Forms, на данный момент нет поддержки конструктора форм Visual Studio, если вы переходите на веб-сайт, он заявляет: "Примечание: Xamarin.Forms не совместим с ранее существовавшим XAML. визуальные дизайнеры. К сожалению, вы не можете просто изменить:
public partial class MainPage : ContentPage
в
public partial class MainPage : Page
это победит всю цель. То, что вы по существу делаете, происходит от WPF, а не от Xamarin Forms. ContentPage является версией Xamarin Forms страницы WPF. Еще одна вещь, которую стоит отметить, - даже если вы смогли загрузить Designer, вы не хотите использовать какие-либо элементы управления в "Toolbox", они опять-таки только для WPF. Если бы вы использовали какой-либо из.Net Controls, он работал бы под Windows, но если бы вы попытались запустить его под другой платформой, он бы потерпел крах, потому что Xamarin Forms в конечном итоге отображает элементы управления в элемент управления Native OS и те, что в Инструментарий только для ОС Windows.