แก้ไข

แชร์ผ่าน


Panel.IsItemsHost Property

Definition

Gets or sets a value that indicates that this Panel is a container for user interface (UI) items that are generated by an ItemsControl.

public:
 property bool IsItemsHost { bool get(); void set(bool value); };
[System.ComponentModel.Bindable(false)]
public bool IsItemsHost { get; set; }
[<System.ComponentModel.Bindable(false)>]
member this.IsItemsHost : bool with get, set
Public Property IsItemsHost As Boolean

Property Value

true if this instance of Panel is an items host; otherwise, false. The default value is false.

Attributes

Examples

The following example uses a ControlTemplate to create a horizontal ListBox. The horizontal StackPanel is specified within the ControlTemplate. The IsItemsHost property is set to true on the StackPanel, which indicates that the generated items should be placed in the panel. When you specify it this way, the ItemsPanel cannot be replaced by the user of the control without using a ControlTemplate. Therefore, do this only if you know that you do not want the panel to be replaced without the use of a template.

<Style TargetType="ListBox">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="ListBox">
        <Border CornerRadius="5" Background="{TemplateBinding ListBox.Background}">
          <ScrollViewer HorizontalScrollBarVisibility="Auto">
            <StackPanel Orientation="Horizontal"
                       VerticalAlignment="Center"
                       HorizontalAlignment="Center"
                       IsItemsHost="True"/>
          </ScrollViewer>
        </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

Alternatively, you can set the ItemsControl.ItemsPanel property. The following example sets the ItemsPanel in a Style of a ListBox.

<Grid.Resources>
  <Style TargetType="Separator">
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type Separator}">
          <Border Width="2" Height="12" Margin="4" Background="Gray"/>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

  <Style TargetType="ListBox">
    <Setter Property="ItemsPanel">
      <Setter.Value>
        <ItemsPanelTemplate>
          <StackPanel Orientation="Horizontal"
                      VerticalAlignment="Center"
                      HorizontalAlignment="Center"/>
        </ItemsPanelTemplate>
      </Setter.Value>
    </Setter>
  </Style>
  
</Grid.Resources>

Remarks

You cannot bind data to this property.

Dependency Property Information

Identifier field IsItemsHostProperty
Metadata properties set to true IsNotDataBindable

Applies to

See also