Xamarin.FormsでXAMLを使えるようにするまで

XamarinでXAMLっぽいのが扱えると聞いたのですが、時間がなくしばらく触れてませんでした。
昨晩ちょっとだけ時間が出来たのでちょっとだけ触りました。
(スクショ取ってないので文章だけになります。)

環境はMac OS X Maverick+Xamarin Studioです。

Xamarin Studioを最新のstableまでアップデートしました。
betaとalphaはどんな状態か分かりません。

新しいソリューション(以後sln)を作成してC#→Mobile Apps→Blank App(Xamarin.Forms Portable)を選択します。
名前はテキトーに付けていいです。

するとプロジェクトが3つ(slnと同名、sln.Android、sln.iOS)となります。
ここで一旦ビルドしてみるとエラーが出ます。
内容は確か.Net 4.5が見つからないとか何とかだった気がします。

MonoFrameworkを入れればいいみたいなのをStackoverflowで見つけたのでインストールします。
http://sourceforge.jp/projects/sfnet_mono.mirror/releases/

インストールしてアップデートして再度ビルドするとXamarin.Formsが見つからないとエラーが出ます。
Xamarin.FormsはどうやらNugetから取得する必要があるみたいです。
(Xamarin.Formsって新規にあるなら最初から入れといて欲しいんだけど…)
Xamarin StudioでNugetするには何か設定する必要があったと思うんですが、
5.0からは既に導入済みになっている様です。

3つのプロジェクト全てにNugetする必要があるっぽい?です。
プロジェクトを選択→歯車アイコン→追加→Add Packages→右上の検索にXamarin.Formsを入力→Xamarin.Formsをチェック→Add Packageボタン

確かこれでビルドが通るようになるはず。
で、実際にXAMLっぽいのでレイアウトを書くのは以下の通り。

slnと同名のプロジェクトを選択→歯車→追加→新しいファイルを追加
Forms→Forms ContentPage Xaml→名前を付けて追加(MyPageとする)

するとxamlがいるとcsファイルが出来る。
最初のページはApp.csでレイアウトが書かれているが、ここもXAMLに変えるには池のように変更

return new ContentPage{ 略 } → return new MyPage();

あとはMyPage.xamlにXAMLっぽいのを書いていけばいいんだけど、全部手書きです。
あと何か1文字打たないとIntelliSense効かないです。
ついでにIntelliSenseで出てくるのはプロパティ名だけっぽいです。
値は全部かどうか定かじゃないですが、”ダブルクオーテーション”で囲う必要あるみたい。

ちなみにiOS7対策されてなくて、Label置いたらステータスバーに見事にかかりました。

でもボタンはテキストが中央に表示されてたので何でじゃ!って思ったんで書いた

これ、iOSのステータスバーだけ対策とかどうやったらいいんですかね?

広告

Xamarin.FormsでXAMLを使えるようにするまで」への1件のフィードバック

  1. はじめまして。
    iOSのステータスバー問題ですが、コードビハインドに
    if (Device.OS == TargetPlatform.iOS)
    でPaddingを(0,20,0,0)っていう記述をどこかで見た気がします。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中