March 16
Questo articolo intende dimostrare come impostare un WPF GridSplitter in XAML utilizzando Microsoft Visual Studio 2008. Mi scuso per la scarsa formattazione del codice XAML, ma eHow non ha alcun supporto per la formattazione del codice. Copiare il codice nel vostro editor e sostituire tutte le occorrenze di <con <per visualizzare il codice corretto. Questo articolo si presuppone che il lettore sa già come utilizzare il controllo WPF griglia. La sezione delle risorse di seguito contiene collegamenti a libri WPF che mi sento di raccomandare.
Creare un'applicazione WPF in Visual Studio 2008 e creare una griglia con una riga e due colonne. Poi posto un blocco di testo in ogni maglia. Il XAML dovrebbe essere simile a questo:
<Window x: Class = "GridsplitterSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="GridSplitter Sample" Height="300" Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
& Lt; TextBlock Grid.Row = & quot; 0 & quot; Grid.Column = & quot; 0 & quot; Sfondo = & quot; LIGHTGRAY & quot; Margine = & quot; 0 0 4 0 & quot;> Block 1 & lt; / TextBlock>
& Lt; TextBlock Grid.Row = & quot; 0 & quot; Grid.Column = & quot; 1 & quot; Grid.RowSpan = & quot; 2 & quot; Sfondo = & quot; verde chiaro & quot;> Blocco 2 & lt; / TextBlock>
& Lt; / Griglia>
</ Finestra>
2
Aggiungi un GridSplitter. Questo può essere fatto in due modi. La prima tecnica consiste nel creare una colonna separata o riga dedicata al GridSplitter. La seconda tecnica è aggiungere il GridSplitter ad una colonna esistente. Questo articolo intende dimostrare utilizzando la seconda tecnica. L'aggiunta di un GridSplitter in questo modo richiede solo una singola linea di codice XAML:
<GridSplitter Grid.Row = "0" Grid.Column = "0" HorizontalAlignment = "right" width = "4" Sfondo = "giallo" />
I controlli di proprietà HorizontalAlignment quale lato della colonna appare lo splitter via.
3
Si noti che non si può vedere il divisore quando si esegue l'applicazione. Questo perché il TextBlock è la larghezza della colonna ed è reso davanti splitter.
4 Sappiate che un modo per risolvere questo problema sarebbe quella di modificare l'ordine z dei controlli sia mettendo il GridSplitter dopo TextBlock o impostando in modo esplicito la proprietà ZIndex. Il difetto di questo approccio è che il GridSplitter avrebbe oscurare il bordo destro del TextBlock. 5
Fissare questo il modo corretto impostando un margine sul lato destro del blocco di testo in modo che vi sia spazio per il GridSplitter di coesistere con TextBlock nella colonna. Il codice finale è simile al seguente:
<Window x: Class = "GridsplitterSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="GridSplitter Sample" Height="300" Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
& Lt; GridSplitter Grid.Row = & quot; 0 & quot; Grid.Column = & quot; 0 & quot; HorizontalAlignment = & quot; A destra & quot; Width = & quot; 4 & quot; Sfondo = & quot; Yellow & quot; />
& Lt; TextBlock Grid.Row = & quot; 0 & quot; Grid.Column = & quot; 0 & quot; Margine = & quot; 0 0 4 0 & quot; Sfondo = & quot; LIGHTGRAY & quot;> Testo Block & lt; / TextBlock>
& Lt; TextBlock Grid.Row = & quot; 0 & quot; Grid.Column = & quot; 1 & quot; Sfondo = & quot; verde chiaro & quot;> Testo Block 2 & lt; / TextBlock>
& Lt; / Griglia>
</ Finestra>
6
Eseguire l'applicazione e vedere due blocchi di testo e uno splitter che vi permetterà loro di ridimensionare.