共用方式為


HOW TO:使用 GridSplitter 建立使用者可調整大小的應用程式

您可以使用 GridSplitter 控制項結合 Grid 容器控制項,建立可由使用者在執行階段重新調整大小的視窗配置。 例如,在將 UI 分成幾個區域的應用程式中,使用者可以視想要看到哪些區域的詳細內容,而拖曳分隔器將區域放大。

當您將 GridSplitter 控制項加入至 Grid 時,它就是方格控制項的子系,而且必須放置在資料列和資料行中,和任何其他子控制項一樣。 GridSplitter 的寬度和高度必須為非零,使用者才能在執行階段抓取並拖曳它。

GridSplitter 的最佳做法包括:

  • GridSplitter 放在不含任何其他控制項的專用資料列或資料行中。

  • 將內含 GridSplitter 之資料列的高度或資料行的寬度設定為 Auto

  • 將單一的 Grid 專用於 GridSplitter。 將其他容器面板加入至 Grid 以完成配置。

若要建立垂直 GridSplitter

  1. 在 [設計] 檢視中,選取 Grid。 如需詳細資訊,請參閱 HOW TO:在設計介面上選取並移動項目

  2. 在您希望顯示 GridSplitter 的位置,加入資料行。 如需詳細資訊,請參閱 HOW TO:在方格中加入資料列和資料行

    注意

    在某些情況下,可能很難在設計工具中放置資料列和資料行。這種時候,您可以使用 XAML 編輯器設定 Grid。如需範例 XAML 標記,請參閱本主題結尾的範例區段。

  3. 從 [工具箱] 中,將 GridSplitter 控制項拖曳至加入的資料行中。

  4. 在 [屬性] 視窗中,為 GridSplitter 設定下列屬性:

    屬性

    可能的值

    ResizeBehavior

    BasedOnAlignment

    BasedOnAlignment

    CurrentAndNext

    PreviousAndCurrent

    PreviousAndNext

    ResizeDirection

    Columns

    Auto

    資料行

    Rows

    Grid.Column

    您要放置 GridSplitter 的資料行 (資料行編號是以零起始的)。

    Grid.ColumnSpan

    1

    Grid.Row

    0

    Grid.RowSpan

    Grid 中的資料列總數。

    Width

    非零的數字, 例如 10。

    Height

    Auto

    HorizontalAlignment

    Stretch

    Left

    Center

    Right

    Stretch

    VerticalAlignment

    Stretch

    Top

    Center

    Bottom

    Stretch

    Margin

    0

  5. 在 [設計] 檢視中,選取 Grid

  6. 將內含 GridSplitter 之 ColumnDefinition 的 [Width] 設定為 [Auto]。

若要建立水平 GridSplitter

  1. 在 [設計] 檢視中,選取 Grid。 如需詳細資訊,請參閱 HOW TO:在設計介面上選取並移動項目

  2. 在您希望顯示 GridSplitter 的位置,加入資料列。 如需詳細資訊,請參閱 HOW TO:在方格中加入資料列和資料行

    注意

    在某些情況下,可能很難在設計工具中放置資料列和資料行。這種時候,您可以使用 XAML 編輯器設定 Grid。如需範例 XAML 標記,請參閱本主題結尾的範例區段。

  3. 從 [工具箱] 中,將 GridSplitter 控制項拖曳至加入的資料列中。

  4. 在 [屬性] 視窗中,為 GridSplitter 設定下列屬性:

    屬性

    可能的值

    ResizeBehavior

    BasedOnAlignment

    BasedOnAlignment

    CurrentAndNext

    PreviousAndCurrent

    PreviousAndNext

    ResizeDirection

    Rows

    Auto

    資料行

    Rows

    Grid.Column

    0

    Grid.ColumnSpan

    Grid 中的資料行總數。

    Grid.Row

    您要放置 GridSplitter 的資料列 (資料列編號是以零起始的)。

    Grid.RowSpan

    1

    Width

    Auto

    Height

    非零的數字, 例如 10。

    HorizontalAlignment

    Stretch

    Left

    Center

    Right

    Stretch

    VerticalAlignment

    Stretch

    Top

    Center

    Bottom

    Stretch

    Margin

    0

  5. 在 [設計] 檢視中,選取 Grid

  6. 將內含 GridSplitter 之 RowDefinition 的 [Height] 設定為 [Auto]。

範例

下列 XAML 會建立一個水平 GridSplitter

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition Height="Auto" />
        <RowDefinition MinHeight="70" />
    </Grid.RowDefinitions>
    <DockPanel Grid.Row="0" Grid.RowSpan="1" HorizontalAlignment="Stretch" Margin="0" Background="LightBlue" Name="DockPanel1">
    </DockPanel>
    <GridSplitter Grid.Row="1" Grid.RowSpan="1" ResizeDirection="Rows" Width="Auto" Height="10" HorizontalAlignment="Stretch" Margin="0" Name="GridSplitter1" />
    <Grid Grid.Row="2" HorizontalAlignment="Stretch" Margin="0" Background="PaleGoldenrod" Name="Grid1">
    </Grid>
</Grid>

請參閱

工作

逐步解說:使用 WPF 設計工具建立可調整大小的應用程式

參考

GridSplitter

其他資源

WPF 設計工具中的配置

GridSplitter