ItemsPanelTemplate 類別

定義

指定 ItemsPresenterItemsControl 之項目的版面配置所建立的面板。

public ref class ItemsPanelTemplate : System::Windows::FrameworkTemplate
public class ItemsPanelTemplate : System.Windows.FrameworkTemplate
type ItemsPanelTemplate = class
    inherit FrameworkTemplate
Public Class ItemsPanelTemplate
Inherits FrameworkTemplate
繼承

範例

若要建立水準 ListBox ,您可以建立範本來指定水準 StackPanel ,並將其設定為 ItemsPanel 屬性。 下列範例顯示建立 ListBoxStyle 水準 ListBox 的 。

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

下列範例會使用 ControlTemplate 建立具有圓角的水準 ListBox 。 請注意,在此範例中,不會如先前範例所示設定 ItemsPanel 屬性,而是在 ControlTemplate 內指定水準 StackPanel 。 請注意, IsItemsHost 屬性在 上 StackPanel 設定 true 為 ,表示產生的專案應該在面板中執行。 當您以這種方式指定時, ItemsPanel 控制項的使用者 ControlTemplate 無法使用 來取代 。 因此,只有在您知道您不想不使用範本的情況下取代面板,才這麼做。

<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>

或者,您可以執行下列動作來達成相同的結果。 在此情況下,會 ItemsPresenter 根據 所 ItemsPanelTemplate 指定的專案,建立專案的版面配置面板。

<Style TargetType="{x:Type ListBox}">
  <Setter Property="ItemsPanel">
    <Setter.Value>
      <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"
                     VerticalAlignment="Center"
                     HorizontalAlignment="Center"/>
      </ItemsPanelTemplate>
    </Setter.Value>
  </Setter>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type ListBox}">
        <Border CornerRadius="5"
                Background="{TemplateBinding ListBox.Background}">
          <ScrollViewer HorizontalScrollBarVisibility="Auto">
            <ItemsPresenter/>
          </ScrollViewer>
        </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

如需如何在 上使用不同樣式和範本化屬性的 ItemsControl 範例,請參閱 資料範本化概觀

備註

ItemsPanelTemplate會指定用於專案配置的面板。 GroupStylePanel具有 類型 ItemsPanelTemplate 為 的屬性。 ItemsControl 類型具有 ItemsPanel 屬於 類型的 ItemsPanelTemplate 屬性。

每個 ItemsControl 類型都有預設 ItemsPanelTemplate 。 針對 類別 ItemsControl ,預設值 ItemsPanelItemsPanelTemplate 指定 的 StackPanelListBox針對 ,預設值會使用 VirtualizingStackPanel 。 針對 MenuItem ,預設值會使用 WrapPanel 。 針對 StatusBar ,預設值會使用 DockPanel

建構函式

ItemsPanelTemplate()

初始化 ItemsPanelTemplate 類別的執行個體。

ItemsPanelTemplate(FrameworkElementFactory)

使用指定的樣板來初始化 ItemsPanelTemplate 類別的執行個體。

屬性

Dispatcher

取得與這個 Dispatcher 關聯的 DispatcherObject

(繼承來源 DispatcherObject)
HasContent

取得值,指出這個樣板是否有最佳化內容。

(繼承來源 FrameworkTemplate)
IsSealed

取得值,這個值表示這個物件是否處於不變的狀態,以便無法對其進行變更。

(繼承來源 FrameworkTemplate)
Resources

取得或設定可在這個樣板的範圍內使用的資源集合。

(繼承來源 FrameworkTemplate)
Template

當樣板為已定義或由寫入器套用時,取得或設定記錄或播放該樣板之 XAML 節點的物件之參考。

(繼承來源 FrameworkTemplate)
VisualTree

取得或設定樣板的根節點。

(繼承來源 FrameworkTemplate)

方法

CheckAccess()

判斷呼叫的執行是否可以存取這個 DispatcherObject

(繼承來源 DispatcherObject)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FindName(String, FrameworkElement)

尋找與這個樣板內定義之指定名稱相關聯的項目。

(繼承來源 FrameworkTemplate)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
LoadContent()

載入當做物件執行個體的樣板內容,並傳回該內容的根項目。

(繼承來源 FrameworkTemplate)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
RegisterName(String, Object)

將新的「名稱/物件」組註冊到目前的名稱範圍中。

(繼承來源 FrameworkTemplate)
Seal()

鎖定樣板,以便無法對其進行變更。

(繼承來源 FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

傳回值,這個值表示在這個類別的執行個體上,序列化處理是否應該將 Resources 屬性的值序列化。

(繼承來源 FrameworkTemplate)
ShouldSerializeVisualTree()

傳回值,這個值表示在這個類別的執行個體上,序列化處理是否應該將 VisualTree 屬性的值序列化。

(繼承來源 FrameworkTemplate)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
UnregisterName(String)

從 XAML 名稱範圍移除名稱/物件對應。

(繼承來源 FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

確認樣版化父代 (Parent) 是一個非 null 的 ItemsPresenter 物件。

VerifyAccess()

請強制執行可以存取這個 DispatcherObject 的呼叫執行緒。

(繼承來源 DispatcherObject)

明確介面實作

INameScope.FindName(String)

傳回具有所提供之識別名稱的物件。

(繼承來源 FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

查詢指定的環境屬性 (Ambient Property) 是否可用於目前的範圍。

(繼承來源 FrameworkTemplate)

適用於