Vistaの背景画像選ぶときみたいなリストボックスを作りたいということで、叩き台を作ってみた。後は微調整でいけるのかな?
とりあえずXAMLだけを。
<Window x:Class="WpfImageList.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfImageList"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<Window.Resources>
<local:ImageSizeConverter x:Key="imageSizeConverter" />
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Converter={StaticResource imageSizeConverter}}"/>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel ItemHeight="100" ItemWidth="100" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</Grid>
</Window>
ListBoxのItemTemplateで、ListBoxItemに画像を表示している部分と、ListBoxのItemsPanelで表示にWrapPanelを使ってるのが特徴。横スクロールはイラナイ(というか有るとWrapPanelが横方向に無限に広がるため折り返さない)のでScrollViewer.HorizontalScrollBarVisibility="Disabled"にしている。
ItemTemplateをもうちょとっと格好良くすればそっくりになるかな?
その他の部分については、下記のプロジェクト参照してください。