バージョン 20.1 (最新)

XamCategoryChart ツールチップ

このトピックではコード例を使用して、XamCategoryChart コントロールのツールチップを構成する方法を説明します。

概要

XamCategoryChart で、チャートのプロット領域で長押しのジェスチャが実行されたときにツールチップは表示されます。また、長押ししてから、放さずに指をその他のプロット領域の部分に移動させると、ツールチップの値が更新されます。

前提条件

本トピックの理解を深めるために、以下のトピックを参照することをお勧めします。

トピック 目的

XamCategoryChart の概要

このトピックは、主要機能、最小要件およびユーザー機能性など、XamCategoryChart コントロールの概念的な情報を提供します。

データ バインド

このトピックでは、データを XamCategoryChart コントロールにバインドする方法を説明します。

このトピックの内容

このトピックは、以下のセクションで構成されます。

ツールチップの概要

ツールチップ コンテンツは、XamCategoryChart オブジェクトの ToolTipTemplate プロパテによって提供されます。 Xamarin.Forms では、ツールチップを構成する視覚要素を含む DataTemplate を使用します。

XamCategoryChart のツールチップは、チャートでプロットされる各シリーズを表します。値プロパティ名が同じ階層構造を使用している場合以外、ToolTipTemplate プロパティと DataTemplateSelector を使用してください。

ToolTipTemplate で使用される DataTemplate に配置される要素が DataContext オブジェクトのバインディング コンテキストを持ちます。このオブジェクトが特定のツールチップの基本データ項目を Item プロパティによってアクセスできるし、表されている Series を Series プロパティによってアクセスできます。この DataContext クラスおよび DataTemplateSelector の使用が以下のコード スニペットで表示されます。

プロパティの設定

XamCategoryChart コントロールのツールチップのルック アンド フィールをカスタマイズするには、ToolTipTemplate プロパティに追加して以下のプロパティを設定できます。

プロパティ名 プロパティ タイプ 説明

ToolTipBackgroundColor

Brush

ツールチップの背景色を取得または設定します。

ToolTipBorderColor

Brush

ツールチップの境界線の色を取得または設定します。

ToolTipBorderThickness

double

ツールチップの境界線の太さを取得または設定します。

コード スニペット

以下のコード例は、上記のプロパティおよび DataTemplateSelector を使用して XamCategoryChart コントロールのツールチップをカスタマイズする方法を紹介します。

XAML の場合:

xmlns:ig="clr-namespace:Infragistics.XamarinForms.Controls.Charts;assembly=Infragistics.XF.Charts"
xmlns:local="clr-namespace:MyAppNamespace"

XAML の場合:

<ig:XamCategoryChart ItemsSource="{Binding}"
                     ChartType="Column"
                     ToolTipBackgroundColor="LightGray"
                     ToolTipBorderColor="DarkOrange"
                     ToolTipBorderThickness="2">
    <ig:XamCategoryChart.ToolTipTemplate>
        <local:TooltipSelector/>
    </ig:XamCategoryChart.ToolTipTemplate>
</ig:XamCategoryChart>

C# の場合:

namespace MyAppNamespace
{
    public class TooltipSelector : DataTemplateSelector
    {
        protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
        {
            if (container is ColumnSeries)
            {
                ColumnSeries series = container as ColumnSeries;
                DataTemplate template = CreateDataTemplate(series);
                return template;
            }
            else
            {
                return null;
            }
        }

        private DataTemplate CreateDataTemplate(ColumnSeries series)
        {
            DataTemplate template = new DataTemplate(() =>
            {
                StackLayout layout = new StackLayout() { Orientation = StackOrientation.Horizontal, Margin = new Thickness(5, 2) };

                Label titleLabel = new Label() { TextColor = ((SolidColorBrush)series.ActualBrush).Color };
                titleLabel.Text = series.ValueMemberPath + ": ";

                Label valueLabel = new Label() { TextColor = ((SolidColorBrush)series.ActualBrush).Color };
                valueLabel.SetBinding(Label.TextProperty, new Binding("Item." + series.ValueMemberPath));

                layout.Children.Add(titleLabel);
                layout.Children.Add(valueLabel);

                return layout;
            });

            return template;
        }
    }
}
categorychart tooltip.png

関連コンテンツ

トピック 目的

カテゴリ チャートの追加

このトピックは、XamCategoryChart コントロールを追加する方法を紹介します。