WPF - WrapPanel



在 WrapPanel 中,子元素按順序排列,從左到右或從上到下,具體取決於 orientation 屬性。StackPanel 和 WrapPanel 之間的唯一區別在於它不會將所有子元素堆疊在同一行;如果剩餘空間不足,它會將剩餘元素換行到下一行。

WrapPanel 主要用於選項卡或選單項。WrapPanel 類的繼承層次結構如下:

Hierarchical of WrapPanel

WrapPanel 的常用屬性

序號 屬性及描述
1

Background

獲取或設定填充面板內容區域的 Brush。(繼承自 Panel)

2

Children

獲取此 Panel 的子元素的 UIElementCollection。(繼承自 Panel。)

3

Height

獲取或設定元素的建議高度。(繼承自 FrameworkElement。)

4

ItemHeight

獲取或設定一個值,該值指定 WrapPanel 中包含的所有專案的高度。

5

ItemWidth

獲取或設定一個值,該值指定 WrapPanel 中包含的所有專案的寬度。

6

LogicalChildren

獲取一個列舉器,該列舉器可以迭代此 Panel 元素的邏輯子元素。(繼承自 Panel。)

7

LogicalOrientation

面板的方向,如果面板僅支援在一個維度上進行佈局。(繼承自 Panel。)

8

Margin

獲取或設定元素的外邊距。(繼承自 FrameworkElement。)

9

Name

獲取或設定元素的標識名稱。該名稱提供了一個引用,以便程式碼隱藏(例如事件處理程式程式碼)可以在 XAML 處理器在處理過程中構造標記元素後引用該元素。(繼承自 FrameworkElement。)

10

Orientation

獲取或設定一個值,該值指定排列子內容的維度。

11

Parent

獲取此元素的邏輯父元素。(繼承自 FrameworkElement。)

12

Resources

獲取或設定本地定義的資源字典。(繼承自 FrameworkElement。)

13

Style

獲取或設定此元素在呈現時使用的樣式。(繼承自 FrameworkElement。)

14

Width

獲取或設定元素的寬度。(繼承自 FrameworkElement。)

示例

以下示例演示如何將子元素新增到 WrapPanel 中。這是 XAML 實現,其中在水平方向的 WrapPanel 內建立了文字塊和文字框。

<Window x:Class = "WPFWrapPanel.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   xmlns:local = "clr-namespace:WPFWrapPanel" 
   mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604"> 
	
   <Grid> 
      <WrapPanel Orientation = "Vertical"> 
         <TextBlock Text = "Fist Name" Width = "60" Height = "20" Margin = "5" /> 
         <TextBox  Width = "200" Height = "20" Margin = "5" /> 
         <TextBlock Text = "Last Name" Width = "60" Height = "20" Margin = "5" /> 
         <TextBox  Width = "200" Height = "20" Margin = "5"/> 
         <TextBlock Text = "Age" Width = "60" Height = "20" Margin = "5" /> 
         <TextBox  Width = "60" Height = "20" Margin = "5" /> 
         <TextBlock Text = "Title" Width = "60" Height = "20" Margin = "5" /> 
         <TextBox  Width = "200" Height = "20" Margin = "5" /> 
      </WrapPanel> 
   </Grid> 
	
</Window>

編譯並執行上述程式碼後,將生成以下視窗。可以透過將 orientation 屬性更改為 Vertical 將排列方式從上到下更改。

Output of Wrappanel

建議您執行上述示例程式碼,並嘗試此類的其他屬性。

wpf_layouts.htm
廣告

© . All rights reserved.