ぴーさんログ

だいたいXamarin.Formsのブログ

Xamarin.Forms

Xamarin.Forms向けのMap機能拡張ライブラリを作ってます

https://github.com/P3PPP/MapExtensions コンセプトはXamarin.Forms 2.1.0で追加されたEffectsを利用して、Mapコントロールを継承することなく機能を追加するというもの。 つまり、従来のカスタムMapにも適用可能。 NuGetにもすでに上がってます。 https://…

【Xamarin.Forms 2.2.0(プレビュー)】UWP Maps

Xamarin.Forms 2.2.0からUWPでもXamarin.Forms.Mapsがサポートされます。 (っていうか今まで無かったんだ...) ざっくりとした使い方 他のプラットフォームと同様、 Xamarin.Forms.Forms.Init() の直後に Xamarin.FormsMaps.Init() を呼ぶ必要があります。 UW…

【Xamarin.Forms 2.2.0(プレビュー)】CarouselView

Xamarin.Forms 2.2.0 から CarouselView クラスが追加されます。 CarouselView は従来の CarouselPage を置き換える物で、CarouselPageは将来的に非推奨となります。 サンプル 基本的な使い方は ListView に似ています。しかし、DataTemplateの中身を Cellで…

【Xamarin.Forms】BindableProperty.Create() non-generic版のコードスニペット

以前、BindablePropertyを楽に作るコードスニペットを公開しました。 その中で使っていたBindableProperty.Create()のgeneric版がobsolete化したので、新しくnon-generic版のスニペットを公開します。 詳細な登録手順はgeneric版の記事を合わせてご参照くだ…

【Xamarin.Forms 2.2.0(プレビュー)】Marginプロパティ

Xamarin.Forms 2.2.0 から View クラスに Margin プロパティが追加されます。 複雑なレイアウトが今までより平易に書けるようになりますね。 (ずっと来ないのでパフォーマンス的に厳しいのかと思ってまいした) サンプル public App() { MainPage = new Conte…

Build 2016とXamarin.Forms

Build 2016で 超!エキサイティン!! な発表がありました、なんとVisual Studioの全エディション(Community含む)にXamarinライセンスが無料で付くようになりました。 さらに、諸々のSDKがオープンソースになります。 In addition to these important steps, we…

Xamarin買収でXamarin.Formsが今後どうなるか考えてみる

結構今更なタイミングではありますがXamarin.Formsが今後どうなるかつらつらと考えてみました。 総評としては「UIデザイナが追加されたら様子見してた人達も突入してもOK」といったところでしょうか。 思いつくパターン 強化される MSの圧倒的リソースが投入…

【Xamarin.Forms】Effectsを使ったトリック 1

Xamarin.Forms 2.1.0 がリリースされたのでEffectを利用したトリックを解説します。 今回は Xamarin.Forms.Maps.Map (にアタッチしたBehavior)に地図のタップイベントを生やすというものです。 同様のことがカスタムMapクラス&カスタムRendererで実現できま…

【ソース公開】Xamarin.Forms製のAED検索アプリ、iOS版もリリースしました!

Android版に続き、Xamarin.Forms製アプリ「AEDオープンデータ検索」のiOS版をリリースしました! iOS版のコードも公開中のGitHubリポジトリに含まれていますよ! https://github.com/P3PPP/XFAedSearch 主な機能 近くにあるAEDを地図に表示します。 AED情報…

Xamarin.Forms.Mapsのバグを報告しようとしたら既にチケット上がってた

Xamarin.Forms.Maps.Mapのバグを発見しました。 AED検索アプリ作ってる途中で見つけた Xamarin.Forms.Maps のバグ、再現プロジェクト作って報告しようとしたら既に同様のチケットがあった。https://t.co/mYshXKozr4— たまにXamarin.Forms解説マン (@ticktack…

【ソース公開】Xamarin.Forms製のアプリをリリースしました (Android版)

先日、Xamarin.Forms製のAED検索アプリをGoogle Playストアにリリースしました。(iOS版は申請作業中) AEDオープンデータ検索 ついでにソースコードもGitHubで公開してます。(公開事例ですよー!) https://github.com/P3PPP/XFAedSearch 主な機能 近くにあるA…

Xamarin.Formsで諦めたこと(全画面コンテンツとNavigationBar)

iOSの「マップ」のように、コンテンツを大きく見せるため、画面をタップするとナビゲーションバー(Xamarin.Formsではこの表記)が引っ込むアプリがありますね? 例(iOSの「マップ」アプリ) NavigationPage.SetHasNavigationBar() でナビゲーションバーの有無…

【Xamarin.Forms】RelativeLayoutで中央に配置する

RelativeLayout の子要素に XConstraint , YConstraint Attached Property をセットすることでレイアウト位置を調整できます。 これはXY座標、つまり左上原点の指定となるため中央に配置するには一手間必要です。(AbsoluteLayoutの場合はいい感じに中央配置…

Xamarin.FormsでTextBlockのような事をする

テキストの一部だけ色やフォントサイズを変えたい時、WPFならTextBlockを使いますね? Xamarin.Formsでは Label.FormattedText で実現できます。 サンプル XAMLで書くとこんな感じ <Label> <Label.FormattedText> <FormattedString> <Span Text="名前:" ForegroundColor="Gray"/> <Span Text="あべなな" FontSize="Large" ForegroundColor="Maroon"/> <Span Text=" さん"/> </span></span></span></formattedstring></label.formattedtext></label>

Effectを使ってAndroidのMapViewからボタンを消す

Xamarin.Forms.Maps.Map コントロールを使用する際に現在位置表示、ズーム機能をONにしていると、Android版では地図上にボタンが表示されます。(iOSでは表示されない) iOSと揃えたい、デザインが他と馴染まないので自前で用意したいという場合は邪魔になるの…

NControlを使った汎用的なアイコンボタンのサンプル

こんな感じになるやつ 元々の線や塗りの色を変更できてアイコンに使いやすい。 ソース

NControlでもSVG

以前、NGraphicsでSVGが読み込めるようになったとお伝えしました。 それに伴い、内部でNGraphicsを使っているNControlでもSVGを読み込み&描画できるようになった訳なんですが、何も考えないで使うとちょっと悲しい事になるので解説を。 まずは特に工夫せず…

【Xamarin.Forms 2.1.0(プレビュー)】Effects

Xamarin.Forms 2.1.0 で Effects という新しい概念が追加される予定です。 (個人的な感想として、BehaiviorsやStylesの概念をCutstomRendererに持ち込んだ物がEffectsと捉えるとしっくりきます。) 「Buttonコントロールに枠線を付けたい」といった場合、従来…

【Xamarin.Forms 2.1.0(プレビュー)】DataTemplateSelector

Xamarin.Forms 2.1.0 で DataTemplateSelector が追加される予定です。 DataTemplateSelector を簡単に説明すると 「条件に応じたDataTemplateを返すDataTemplate」 です。 サンプル サンプルとして、各セルのデータ型に合わせたテンプレートを返すDataTempl…

【Xamarin.Forms 2.1.0(プレビュー)】HasUnevenRows dynamic sizing support

ListView.HasUnevenRows = true の場合、Cellのサイズを動的に変更できるようになります。 Androidでは元々動的にサイズ変更されてましたが、今回の変更で Cell.ForceUpdateSize() を呼ぶとサイズが更新される仕様になります。 「プラットフォームによっては…

【Xamarin.Forms 2.1.0(プレビュー)】BindableProperty.Create()

Xamarin.Forms 2.1.0で BindableProperty.Create() のジェネリック版が廃止予定となります。 使っている人は今のうちに修正しておいた方が良いかも。

【Xamarin.Forms 2.1.0(プレビュー)】ControlTemplate

Xamarin.Forms 2.1.0 で ControlTemplate が追加される予定です。 Xamarin.Forms 2.1.0-pre2 Released - Xamarin Forums ControlTemplate は次のクラスで使用可能です。 ContentPage ContentView TemplatedPage TemplatedView TemplatedPage、TemplatedView …

【Xamarin.Forms】TypeConverterの使い方

この記事は「Xamarin Advent Calendar 2015 - Qiita」の9日目です。 TypeConverterはXAMLでプロパティの値を指定する際、文字列から実際の方への変換を手助けしてくれます。(Binding時に登場するIValueConverterとは別物) Xamarin AC 5日目の記事で紹介したX…

Xamarin.FormsでAttachedProperty

AttachedProperty はMicrosoftのXAMLプラットフォームから移植された概念の一つで、MSDNの日本語版では「添付プロパティ」と訳されています。その性質は「任意のオブジェクトにプロパティを生やすことができる」というものです。 分かりやすい具体例は Grid.…

【Xamarin.Forms】XAMLからアニメーションを使えるライブラリを作りました

この記事は「Xamarin Advent Calendar 2015 - Qiita」の5日目です。 Xamarin.Formsにはコントロールを動かしたり、汎用アニメーションを作成するのための拡張メソッドが用意されています。(Xamarin.Forms.ViewExtensionsクラス内) // Labelコントロールを拡…

【Xamarin.Forms】自作ライブラリのカスタムコントロール使用時にSystem.IO.FileNotFoundExceptionが発生する場合の対処

もっと具体的に書くと、 自作ライブラリ(PCL)のコントロールを XAMLのみ で使用していて、 C#コードでそのライブラリを参照しておらず 、Page表示時に System.IO.FileNotFoundException (Could not load file or assembly 'CustomControls' or one of its de…

Xamarin.Forms for UWP Preview を試す

@ticktackmobile 今のところそうですね。一応大っぴらにしていいか聞いてみますが、Feedback ください。って言ってるのでオープンにすればいいのにと思いますがw— 田淵 義人@エクセルソフト (@ytabuchi) 2015, 10月 19 こんな会話をしていたら、公式フォー…

Xamarin.Formsでも使えるベクタグラフィクス コントロール「NControl」

NControl は NControlView というUIコントロールを提供するXamarin.Forms用ライブラリです。 NControlView は前回紹介したNGraphicsのカンバスを内蔵しており、独自の見た目を持つカスタムコントロールが簡単に作れるようになっています。(ちなみにNGraphics…

【Xamarin.Forms】 BindablePropertyを作るコードスニペットを作った

※2016/4/9 追記 generic版(BindableProperty.Create<T1,T2>())がobsoleteになったのでスニペットを更新しました。 スニペット本文はこちらをご参照ください。 Xamarin.FormsでカスタムViewにバインド可能なプロパティを生やす場合、BindablePropertyを書かねばなり</t1,t2>…

【Xamarin.Forms】 なんか下からにゅっと出てくるやつ

まずはこちらのGIF動画をご覧ください。 iPhone版のGoogle Mapsなんですが、下部エリア(丸の内付近と書かれている所)をタップするとサブコンテンツが下から生えてくる訳です。 こんな感じのUI(名前とかあるんでしょうか?)をXamarin.Formsで作ってみます。 .…