ItemsPanelTemplateは、項目のレイアウトに使用されるパネルを指定します。それ以上のカスタマイズにはControlTemplateを使用します。
ソースコード
App.xaml
<Application x:Class="HelloWorld.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="Page1.xaml"> </Application>
Page1.xaml
<Page x:Class="HelloWorld.Page1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300" Title="Page1"> <ListBox x:Name="listBox" Width="200" Height="100"> <ListBox.Template> <ControlTemplate TargetType="{x:Type ListBox}"> <StackPanel Background="LightBlue"> <!-- IsItemsHostで項目を表示するパネルを指定する --> <UniformGrid IsItemsHost="True" Columns="2" /> </StackPanel> </ControlTemplate> </ListBox.Template> </ListBox> </Page>
Page1.xaml.cs
using System.Windows.Controls; namespace HelloWorld { public partial class Page1 : Page { public Page1() { InitializeComponent(); listBox.ItemsSource = new string[] { "佐藤", "鈴木", "渡辺", "小林", "田中" }; } } }
参考
Panel.IsItemsHost プロパティ (System.Windows.Controls)
この Panel が ItemsControl で生成されるuser interface (UI) 項目のコンテナーであることを示す値を取得または設定します。