ItemsControl.ItemContainerStyle プロパティ

定義

ItemsControl の項目コンテナーをレンダリングするときに使用するスタイルを取得または設定します。

public:
 property Style ^ ItemContainerStyle { Style ^ get(); void set(Style ^ value); };
Style ItemContainerStyle();

void ItemContainerStyle(Style value);
public Style ItemContainerStyle { get; set; }
var style = itemsControl.itemContainerStyle;
itemsControl.itemContainerStyle = style;
Public Property ItemContainerStyle As Style
<ItemsControl>
  <ItemsControl.ItemContainerStyle>
    inlineStyle
  </ItemsControl.ItemContainerStyle>
</ItemsControl>
- or -
<ItemsControl ItemContainerStyle="resourceReferenceToStyle"/>

プロパティ値

項目コンテナーに適用されるスタイル。 既定値は null です。

この例では、オブジェクトのリスト String を保持する ListView を作成する方法を示します。 クラスを使用すると、Stringオブジェクトは独自のItemContainerStyle境界線とスタイルをListViewItem持ち、オブジェクトには独自のスタイルとプロパティのセットがあります。 ListView の項目コンテナーの種類は ListViewItem であるため、スタイルの TargetType として使用されることに注意してください。

 <ListView ItemsSource="{x:Bind tempList}" Height="500">
    <ListView.ItemTemplate>
        <DataTemplate x:DataType="x:String">
            <Border BorderBrush="Crimson" BorderThickness="2" CornerRadius="25" Margin="10">
            <TextBlock Text="{x:Bind}" 
                       FontSize="24" 
                       FontFamily="Arial" 
                       FontWeight="Bold" 
                       Foreground="Crimson" 
                       Margin="10"
                       Padding="5"/>
            </Border>
        </DataTemplate>
    </ListView.ItemTemplate>

    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalAlignment" Value="Right"/>
            <Setter Property="Margin" Value="15"/>
            <Setter Property="BorderBrush" Value="CornflowerBlue"/>
            <Setter Property="BorderThickness" Value="5"/>
        </Style>
    </ListView.ItemContainerStyle>
</ListView>

上記のコードでは、ListView 項目で使用される ItemContainerStyle が生成されます。

上の例でわかるように、データ オブジェクト (文字列) には 、DataTemplate で提供される独自のスタイル設定があります。このスタイルには、丸い真紅の境界線、真紅のフォントの色、フォント サイズ、外側の要素からの余白が含まれます。

(各ListViewItem) によってListView生成された各要素は、右側に水平方向に配置され、太い青い罫線と、他の要素から分離するための大きな余白があります。 ListViewItems 内のデータ オブジェクトは中央揃えですが、項目自体を右揃えにできます。 また、データ オブジェクト (文字列) には、他の要素から分離する領域が少ないだけですが、各 ListViewItem 要素は大量の領域で区切られます。

これらのカスタマイズは、上に示すようにスタイルを ListViewItem 作成することによって実行されます。 style 要素は型要素を対象 ListViewItem とし、スタイルが定義されているスコープ内でその型のすべての要素に適用されます。この場合は、表示される だけです ListViewセッターは 、各スタイル プロパティに値を与えるために使用されます。つまり、 を HorizontalAlignmentRight設定します。 これらのプロパティと値は、外部 ListViewItem 要素に影響します。

この例では、単純な ItemsControl で ItemContainerStyle プロパティを使用する方法を示します。 この場合、項目コンテナーの種類は ContentPresenter であることに注意してください。

<ItemsControl>
    <ItemsControl.ItemContainerStyle>
        <Style TargetType="ContentPresenter">
            <Setter Property="FontSize" Value="42" />
        </Style>
    </ItemsControl.ItemContainerStyle>

    <x:String>Hello</x:String>
    <x:String>World</x:String>
</ItemsControl>

注釈

ItemsControl 派生クラスには 、SelectorMenuFlyoutPresenter が含まれます。 Selector から派生したクラスには、 ComboBoxFlipViewListBoxListViewBase ( ListViewGridView の派生元) が含まれます。 したがって、 クラスをItemContainerStyle使用して、などのスタイルListViewItemGridViewItem編集できます。

内のすべての項目について ItemsControl、項目コンテナー要素を使用して項目を表示します。 既定では、項目コンテナーは ContentPresenter です。 ただし、 の ItemsControl サブクラスは、これをオーバーライドできます。たとえば、 ListView のコンテナーの種類は ListViewItem です。 の ItemContainerStyle 値は、コンテナーの FrameworkElement.Style プロパティとして設定されます。

ItemContainerStyle を使用すると、ItemsControl によって生成されるすべての要素のスタイルを変更でき、その領域で多くの柔軟性とカスタマイズ オプションが提供されます。 クラス内では多くのスタイル設定オプションを ItemContainerStyle 使用できますが、 データを含む要素 を相互に比較して表示する方法 (間隔の変更、水平方向の配置など) を編集する場合に最も便利です。背景色やフォント サイズなど、 データ オブジェクト自体の視覚化を変更するには、 ItemTemplate を使用します。 ItemsControl/その項目の全体的なレイアウトまたは向きを変更するには、 ItemsPanel の編集に関するページを参照してください。

適用対象

こちらもご覧ください

ItemsControl.ItemContainerTransitions