投稿

5月, 2016の投稿を表示しています

Xamarin.Formsでカスタムコントロールを作るメモ

Xamarin.Formsでのカスタムコントロール構築 共通プロジェクト側で、BoxViewを継承したクラスを作る BoxViewを継承したクラスをメインのXamlページではっつける プラットフォーム毎のプロジェクトでBoxViewの中を描画するためのRendererクラスを作る // 例) public class CustomControlClass : BoxView { } RendererクラスのiOS/Android共通の要件は以下の通り。 assembly:ExportRenderer属性を設定する。 例)[assembly:ExportRenderer(typeof(ShapeView), typeof(ShapeRenderer))] RendererクラスのiOS固有の要件は以下の通り。 iOSの場合、VisualElementRenderer<>から継承する。 (Xamarin.Forms.Plarform.iOS名前空間で定義) VisualElementRendererの型引数はターゲットとするViewBoxを継承したクラス。 Rendererクラスでは、Drawメソッド内にコントロール固有の描画コードを記述する。 //例) [assembly:ExportRenderer( typeof (CustomControlClass), typeof (CustomControlRenderer))] namespace Hoge.iOS { public class CustomControlRenderer : VisualElementRenderer < CustomControlRenderer > { public override void Draw(System.Drawing.RectangleF rect) { // specify draw code here. } } } Android固有のRendererクラスの要件 Androidの場合、ViewRenderer<>から継承する。(Xamarin.Forms.Plarform.Android名前空間で定