Procedura: creare applicazioni ridimensionabili dall'utente con GridSplitter
È possibile utilizzare il controllo GridSplitter insieme al controllo contenitore Grid per creare layout di finestre ridimensionabili dall'utente in fase di esecuzione. Ad esempio, in un'applicazione la cui interfaccia utente è divisa in aree, l'utente può trascinare un separatore per ingrandire un'area e visualizzarne una quantità maggiore di contenuto.
Un controllo aggiunto GridSplitter in Grid è un elemento figlio del controllo griglia e deve essere posizionato in una riga e in una colonna analogamente a qualsiasi altro controllo figlio. GridSplitter deve avere una larghezza o un'altezza diversa da zero, in modo che l'utente possa catturarlo e trascinarlo in fase di esecuzione.
Le procedure consigliate per GridSplitter includono:
Inserire GridSplitter in una riga o colonna dedicata che non contiene altri controlli.
Impostare l'altezza della riga o la larghezza della colonna che contiene GridSplitter su Auto.
Dedicare un solo Grid a GridSplitter. Aggiungere riquadri contenitori a Grid per completare il layout.
Per creare un oggetto GridSplitter verticale
In visualizzazione Progettazione selezionare Grid. Per ulteriori informazioni, vedere Procedura: selezionare e spostare elementi sull'area di progettazione.
Aggiungere una colonna nel punto in cui si desidera visualizzare GridSplitter. Per ulteriori informazioni, vedere Procedura: aggiungere righe e colonne a una griglia.
Nota
In alcune situazioni può risultare difficile posizionare righe e colonne nella finestra di progettazione. In questo caso, è possibile configurare Grid utilizzando l'editor XAML. Per un esempio di markup XAML, vedere la sezione alla fine di questo argomento.
Dalla Casella degli strumenti trascinare un controllo GridSplitter nella colonna aggiunta.
Nella finestra Proprietà impostare le seguenti proprietà per GridSplitter:
Proprietà
Valore
Valori possibili
ResizeBehavior
BasedOnAlignment
BasedOnAlignment
CurrentAndNext
PreviousAndCurrent
PreviousAndNext
ResizeDirection
Colonne
Auto
Column
Rows
Grid.Column
Colonna in cui si desidera visualizzare GridSplitter. I numeri di colonna sono in base zero.
Grid.ColumnSpan
1
Grid.Row
0
Grid.RowSpan
Numero totale di righe in Grid.
Larghezza
Numero diverso da zero, ad esempio 10.
Altezza
Auto
HorizontalAlignment
Stretch
Left
Center
Right
Stretch
VerticalAlignment
Stretch
Top
Center
Bottom
Stretch
Margin
0
In visualizzazione Progettazione selezionare Grid.
Impostare la proprietà Width di ColumnDefinition che contiene GridSplitter su Auto.
Per creare un oggetto GridSplitter orizzontale
In visualizzazione Progettazione selezionare Grid. Per ulteriori informazioni, vedere Procedura: selezionare e spostare elementi sull'area di progettazione.
Aggiungere una riga nel punto in cui si desidera visualizzare GridSplitter. Per ulteriori informazioni, vedere Procedura: aggiungere righe e colonne a una griglia.
Nota
In alcune situazioni può risultare difficile posizionare righe e colonne nella finestra di progettazione. In questo caso, è possibile configurare Grid utilizzando l'editor XAML. Per un esempio di markup XAML, vedere la sezione alla fine di questo argomento.
Dalla Casella degli strumenti trascinare un controllo GridSplitter nella riga aggiunta.
Nella finestra Proprietà impostare le seguenti proprietà per GridSplitter:
Proprietà
Valore
Valori possibili
ResizeBehavior
BasedOnAlignment
BasedOnAlignment
CurrentAndNext
PreviousAndCurrent
PreviousAndNext
ResizeDirection
Rows
Auto
Column
Rows
Grid.Column
0
Grid.ColumnSpan
Numero totale di colonne in Grid.
Grid.Row
Riga in cui si desidera visualizzare GridSplitter. I numeri di riga sono in base zero.
Grid.RowSpan
1
Larghezza
Auto
Altezza
Numero diverso da zero, ad esempio 10.
HorizontalAlignment
Stretch
Left
Center
Right
Stretch
VerticalAlignment
Stretch
Top
Center
Bottom
Stretch
Margin
0
In visualizzazione Progettazione selezionare Grid.
Impostare la proprietà Height di RowDefinition che contiene GridSplitter su Auto.
Esempio
Nel codice XAML seguente viene creato un oggetto GridSplitter orizzontale:
<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>
Vedere anche
Attività
Procedura dettagliata: creazione di un' applicazione ridimensionabile tramite Progettazione WPF