Xamarin.Forms.WPF でデスクトップアプリを作る
https://rksoftware.hatenablog.com/entry/2018/06/21/020053
を参考にWPFを追加する事はできたのですが、それにNugetパッケージのPrismを適用する方法がわかりませんでした。
無理なんゃないかとも思い始めていますが、もしご存知の方がいらっしゃいましたらご教授ください。
以下が試したことです。
・PrismのテンプレートからXamarin.Formsを作成する
・Nugetパッケージから更新プログラムを全て最新にする
・ソリューション→右クリック→追加→新しいプロジェクト
・Visual C#→Windows デスクトップ→WPFアプリ(.NET Framework)
・参照を一つ下の階層に変更。名称は.WPFを付ける。フレームワークは4.7を選択してOK
・WPFプロジェクト→参照を右クリック→参照の追加
・プロジェクト→ソリューション→PCLにチェック→OK
・NugetパッケージからXamarin.Forms.Platform.WPFをWPFプロジェクトに適用
・NugetパッケージからPrism.Dryloc.Formsを全プロジェクトに適用
MainWindow.xaml.cs
C#
1namespace XFWPF.WPF 2{ 3 /// <summary> 4 /// MainWindow.xaml の相互作用ロジック 5 /// </summary> 6 public partial class MainWindow : Xamarin.Forms.Platform.WPF.FormsApplicationPage 7 { 8 public MainWindow() 9 { 10 InitializeComponent(); 11 Xamarin.Forms.Forms.Init(); 12 LoadApplication(new XFWPF.App(new WpfInitializer())); 13 } 14 15 public class WpfInitializer : IPlatformInitializer 16 { 17 public void RegisterTypes(IContainerRegistry containerRegistry) 18 { 19 // Register any platform specific implementations 20 } 21 } 22 23 } 24}
MainWindow.xaml
Xaml
1<xf:FormsApplicationPage 2 x:Class="XFWPF.WPF.MainWindow" 3 xmlns:xf="clr-namespace:Xamarin.Forms.Platform.WPF;assembly=Xamarin.Forms.Platform.WPF" 4 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 5 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 6 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 7 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 8 xmlns:local="clr-namespace:XFWPF.WPF" 9 mc:Ignorable="d" 10 Title="MainWindow" Height="450" Width="800"> 11 <Grid> 12 13 </Grid> 14</xf:FormsApplicationPage>
では以下のエラーが出てダメでした。
System.Windows.Markup.XamlParseException
HResult=0x80131501
Message='指定されたバインディング制約に一致する型 'XFWPF.WPF.MainWindow' のコンストラクターの呼び出しで例外がスローされました。' 行番号 '8'、行位置 '5'。
Source=PresentationFramework
スタック トレース:
場所 System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
内部例外 1:
TypeLoadException: アセンブリ 'Prism, Version=7.1.0.431, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59' から型 'Prism.Navigation.INavigationService' を読み込めませんでした。
回答2件
あなたの回答
tips
プレビュー