ひょんなことからXamarin.FormsをWindows Formsで動かす事に挑戦してみました。
@amay077 Xamarin.Forms.Platform.WinForms作ればXAMLだって! #さすがにそれは
— nuits.jp (@nuits_jp) 2016年12月20日
Xamarin.Forms.Platform.WinForms 作ってみた! #JXUG #xamarin
— やまも (@yamamo) 2016年12月24日
(超手抜きでLabelをなんとか表示できただけですが) pic.twitter.com/lOPAnuTORt
ちゃんとした仕組みの解説は @atsushieno 大先生のブログを見て頂くとしまして、ここでは単に作成したコードを晒しておこうと思います。 qiita.com
実現出来ているのはLabelを表示するだけです。 レイアウトやプロパティ、イベント等には対応していません。 (StackLayoutとかどうやって実現してるんだろ…)
Platformの拡張にはXamarin.Forms.Coreの中にあるInternalなInterfaceの実装が必要なのでInternalsVisibleToを設定する為だけにXamarin.FormsのソースコードをForkする形にしています。 また、Xamarin.Formsを丸ごとビルドするのは辛いので別途ソリューションファイル Platform.WinForms.sln を用意しています。
正しい実装方法である確証は0%なのでご了承ください! (単なるネタです)