Visual Studio 2010とWPFでデータをタイル表示するアプリケーションを作成しよう
xamTilesControlによるデータのタイル表示
ダウンロード サンプルファイル(ソースコード) (1.1 MB)
ダウンロード サンプルファイル(バイナリ) (1.1 MB)
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>

次に最大化表示させる場合のテンプレートは前回の記事のものをコピーし、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のようになります。
現在、最小化時にタイルを展開できる機能が有効になっており、ここに電話番号並びに、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>
最後に状態を問わず、名前を表示するためテンプレートではなく、XamTilesControl.HeaderPathを定義します。
<igTiles:XamTilesControl x:Name="xamTilesControl1"
DataContext="{StaticResource SampleDataSource}"
ItemsSource="{Binding Path=Collection}"
HeaderPath="Name">
この記事は参考になりましたか?
- Infragistics NetAdvantageチュートリアル連載記事一覧
- この記事の著者
-
インフラジスティックス・ジャパン株式会社 池原 大然(イケハラ ダイゼン)
国内ベンチャー企業にて.NETエンジニアとして開発に従事、2007年インフラジスティックス・ジャパンに入社。現在デベロッパー エバンジェリストとして、.NETやWPF/Silverlight製品や技術の啓蒙活動を行う。Microsoft MVP for Client App Dev 2010/04 ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア


