SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Infragistics NetAdvantageチュートリアル(AD)

Visual Studio 2010とWPFでデータをタイル表示するアプリケーションを作成しよう

xamTilesControlによるデータのタイル表示

  • このエントリーをはてなブックマークに追加

xamTilesControlのスタイリング・テンプレート作成

 データをバインドした場合はそれぞれのレコードが [Tile] として作成されます。xamTilesControlにおいて以下のテンプレートを定義することで [Tile] の外観をカスタマイズ可能です。

 今回はItemTemplate、ItemTemplateMaximized、ItemTemplateMinimizedExpandedを設定します。

定義するテンプレート一覧
テンプレート名 概要
ItemTemplate 通常状態のテンプレート
ItemTemplateMaximized 最大化状態のテンプレート
ItemTemplateMinimized 最小化状態のテンプレート
ItemTemplateMinimizedExpanded 最小化時に展開ボタンが押された場合のテンプレート
ItemHeaderTemplate TilesPanelのヘッダーテンプレート

テンプレートの設定

 今回はPhoto、Nameを通常時に表示するようにするため、XamTilesControl.ItemTemplateを次のように設定します。

<igTiles:XamTilesControl.ItemTemplate>
    <!-通常のテンプレート -->
    <DataTemplate >
        <StackPanel Width="120" Height="100">
            <Image Height="80" Width="80" Source="{Binding Photo}"/>
            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding Name}" />
        </StackPanel>
    </DataTemplate>
</igTiles:XamTilesControl.ItemTemplate>
図8 通常状態のテンプレート
図8 通常状態のテンプレート

 次に最大化表示させる場合のテンプレートは前回の記事のものをコピーし、xamTilesControl.ItemTemplateMaximizedを設定します。

<igTiles:XamTilesControl.ItemTemplateMaximized>
    <!--最大化時のテンプレート-->
    <DataTemplate >
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="120"/>
                <RowDefinition Height="30"/>
                <RowDefinition Height="30"/>
                <RowDefinition Height="30"/>
                <RowDefinition Height="30"/>
                <RowDefinition Height="30"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="120"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <Image Source="{Binding Photo}"/>
            <TextBlock VerticalAlignment="Center" Text="名前"  Grid.Row="1" />
            <TextBlock VerticalAlignment="Center" Text="住所"  Grid.Row="2" />
            <TextBlock VerticalAlignment="Center" Text="会社名"  Grid.Row="3" />
            <TextBlock VerticalAlignment="Center" Text="E-mail"  Grid.Row="4" />
            <TextBlock VerticalAlignment="Center" Text="電話番号"  Grid.Row="5" />
            <TextBlock VerticalAlignment="Center" Text="{Binding Name}" Grid.Row="1" Grid.Column="1" />
            <TextBlock VerticalAlignment="Center" Text="{Binding Address}"  Grid.Row="2" Grid.Column="1" />
            <TextBlock VerticalAlignment="Center" Text="{Binding CompanyName}" Grid.Row="3" Grid.Column="1" />
            <TextBlock VerticalAlignment="Center" Text="{Binding Email}" Grid.Row="4" Grid.Column="1" />
            <TextBlock VerticalAlignment="Center" Text="{Binding PhoneNumber}"  Grid.Row="5" Grid.Column="1" />
        </Grid>
    </DataTemplate>
</igTiles:XamTilesControl.ItemTemplateMaximized>

 実行結果は図9のようになります。

図9 最大化時の表示
図9 最大化時の表示

 現在、最小化時にタイルを展開できる機能が有効になっており、ここに電話番号並びに、E-mailアドレスを表示させるため、XamTilesControl.ItemTemplateMinimizedExpandedを定義します。

<igTiles:XamTilesControl.ItemTemplateMinimizedExpanded>
    <!-- 最小化かつ展開されている場合のテンプレート -->
    <DataTemplate>
        <StackPanel>
            <TextBlock Text="電話番号" />
            <TextBlock Text="{Binding Path=PhoneNumber}" />
            <TextBlock Text="Eメールアドレス" />
            <TextBlock Text="{Binding Path=Email}" />
        </StackPanel>
    </DataTemplate>
</igTiles:XamTilesControl.ItemTemplateMinimizedExpanded>
図10 最小化時の展開表示が変更されている
図10 最小化時の展開表示が変更されている

 最後に状態を問わず、名前を表示するためテンプレートではなく、XamTilesControl.HeaderPathを定義します。

<igTiles:XamTilesControl x:Name="xamTilesControl1" 
                         DataContext="{StaticResource SampleDataSource}"
                         ItemsSource="{Binding Path=Collection}"
                         HeaderPath="Name">

次のページ
xamTilesControlのパネル設定について

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Infragistics NetAdvantageチュートリアル連載記事一覧

もっと読む

この記事の著者

インフラジスティックス・ジャパン株式会社 池原 大然(イケハラ ダイゼン)

国内ベンチャー企業にて.NETエンジニアとして開発に従事、2007年インフラジスティックス・ジャパンに入社。現在デベロッパー エバンジェリストとして、.NETやWPF/Silverlight製品や技術の啓蒙活動を行う。Microsoft MVP for Client App Dev 2010/04 ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5056 2010/03/26 17:20

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング