Xamarin.Forms のカスタム レンダラーXamarin.Forms Custom Renderers

Xamarin.Forms のユーザー インターフェイスは、ターゲット プラットフォームのネイティブ コントロールを使用してレンダリングされるため、Xamarin.Forms アプリケーションでは各プラットフォームの適切な外観を維持できます。カスタム レンダラーにより、開発者はこのプロセスをオーバーライドして、各プラットフォーム上で Xamarin.Forms コントロールの外観とビヘイビアーをカスタマイズできるようになります。Xamarin.Forms user interfaces are rendered using the native controls of the target platform, allowing Xamarin.Forms applications to retain the appropriate look and feel for each platform. Custom Renderers let developers override this process to customize the appearance and behavior of Xamarin.Forms controls on each platform.

カスタム レンダラーの概要Introduction to custom renderers

カスタム レンダラーにより、Xamarin.Forms コントロールの外観とビヘイビアーをカスタマイズするための強力な方法が提供されます。Custom renderers provide a powerful approach for customizing the appearance and behavior of Xamarin.Forms controls. それらは、スタイルに関する小さな変更や、洗練されたプラットフォーム固有のレイアウトおよびビヘイビアーのカスタマイズのために使用できます。They can be used for small styling changes or sophisticated platform-specific layout and behavior customization. この記事では、カスタム レンダラーの概要を示し、カスタム レンダラーを作成するプロセスについて説明します。This article provides an introduction to custom renderers, and outlines the process for creating a custom renderer.

レンダラーの基本クラスおよびネイティブ コントロールRenderer base classes and native controls

すべての Xamarin.Forms コントロールには、ネイティブ コントロールのインスタンスを作成する各プラットフォーム用のレンダラーが付属しています。Every Xamarin.Forms control has an accompanying renderer for each platform that creates an instance of a native control. この記事では、Xamarin.Forms の各ページ、レイアウト、ビュー、およびセルを実装する、レンダラーおよびネイティブ コントロールのクラスの一覧を示します。This article lists the renderer and native control classes that implement each Xamarin.Forms page, layout, view, and cell.

エントリのカスタマイズCustomizing an Entry

Xamarin.Forms の Entry コントロールによって、テキストの 1 行を編集対象にできます。The Xamarin.Forms Entry control allows a single line of text to be edited. この記事では、Entry コントロール用のカスタム レンダラーを作成する方法を示します。これにより、開発者は既定のネイティブ レンダリングを、各自のプラットフォームに固有のカスタマイズでオーバーライドできるようになります。This article demonstrates how to create a custom renderer for the Entry control, enabling developers to override the default native rendering with their own platform-specific customization.

コンテンツ ページのカスタマイズCustomizing a ContentPage

ContentPage は、単一ビューを表示し、画面の大部分を占めるビジュアル要素です。A ContentPage is a visual element that displays a single view and occupies most of the screen. この記事では、ContentPage ページ用のカスタム レンダラーを作成する方法を示します。これにより、開発者は既定のネイティブ レンダリングを、各自のプラットフォームに固有のカスタマイズでオーバーライドできるようになります。This article demonstrates how to create a custom renderer for the ContentPage page, enabling developers to override the default native rendering with their own platform-specific customization.

マップ ピンのカスタマイズCustomizing a Map Pin

Xamarin.Forms.Maps には、プラットフォームごとのネイティブ マップ API を使ったマップ表示用の抽象化がクロスプラットフォームで用意されていて、高速で使い慣れたマップのユーザー エクスペリエンスが提供されます。Xamarin.Forms.Maps provides a cross-platform abstraction for displaying maps that use the native map APIs on each platform, to provide a fast and familiar map experience for users. このトピックでは、Map コントロール用のカスタム レンダラーを作成する方法を示します。これにより、開発者は既定のネイティブ レンダリングを、各自のプラットフォームに固有のカスタマイズでオーバーライドできるようになります。This topic demonstrates how to a create custom renderer for the Map control, enabling developers to override the default native rendering with their own platform-specific customization.

ListView のカスタマイズCustomizing a ListView

Xamarin.Forms の ListView は、データのコレクションを垂直方向の一覧として表示するビューです。A Xamarin.Forms ListView is a view that displays a collection of data as a vertical list. この記事では、プラットフォーム固有のリスト コントロールとネイティブのセルのレイアウトをカプセル化するカスタム レンダラーを作成し、ネイティブ リスト コントロールのパフォーマンスをより厳密に制御する方法を示します。This article demonstrates how to create a custom renderer that encapsulates platform-specific list controls and native cell layouts, allowing more control over native list control performance.

ViewCell のカスタマイズCustomizing a ViewCell

Xamarin.Forms の ViewCell は、ListView または TableView に追加できるセルで、これには開発者が定義したビューが含まれます。A Xamarin.Forms ViewCell is a cell that can be added to a ListView or TableView, which contains a developer-defined view. この記事では、Xamarin.Forms の ListView コントロール内でホストされる、ViewCell 用のカスタム レンダラーを作成する方法を示します。This article demonstrates how to create a custom renderer for a ViewCell that's hosted inside a Xamarin.Forms ListView control. これにより、ListView のスクロール中に Xamarin.Forms のレイアウトの計算が繰り返し呼び出されることが回避されます。This stops the Xamarin.Forms layout calculations from being repeatedly called during ListView scrolling.

WebView のカスタマイズCustomizing a WebView

Xamarin.Forms WebView は、アプリに Web コンテンツと HTML コンテンツを表示するビューです。A Xamarin.Forms WebView is a view that displays web and HTML content in your app. この記事では、JavaScript から C# コードを呼び出せるように WebView を拡張するカスタム レンダラーを作成する方法について説明します。This article explains how to create a custom renderer that extends the WebView to allow C# code to be invoked from JavaScript.

ページの実装Implementing a View

Xamarin.Forms のカスタム ユーザー インターフェイス コントロールは、View クラスから派生させる必要があります。これは画面上にレイアウトとコントロールを配置するために使われます。Xamarin.Forms custom user interfaces controls should derive from the View class, which is used to place layouts and controls on the screen. この記事では、デバイスのカメラからビデオ ストリームのプレビューを表示するために使う、Xamarin.Forms のカスタム コントロール用のカスタム レンダラーを作成する方法を示します。This article demonstrates how to create a custom renderer for a Xamarin.Forms custom control that's used to display a preview video stream from the device's camera.

ビデオ プレーヤーの実装Implementing a video player

この記事では、レンダラーを記述して、Web のビデオ、アプリケーションのリソースとして埋め込まれたビデオ、またはユーザーのデバイス上のビデオ ライブラリに格納されているビデオを再生できる VideoPlayer のカスタム コントロールを実装する方法を示します。This article shows how to write renderers to implement a custom VideoPlayer control that can play videos from the web, videos embedded as application resources, or videos stored in the video library on the user's device. メソッドの実装や、バインド可能な読み取り専用プロパティなど、いくつかの手法を示します。Several techniques are demonstrated, including implementing methods and read-only bindable properties.