Yshopnoosa.com

Hur man använder en Gridsplitter i WPF

Denna artikel kommer att visa hur du ställer in en WPF Gridsplitter i XAML med hjälp av Microsoft Visual Studio 2008. Jag ber om ursäkt för dålig formatering av till XAML, men eHow har inte något stöd för formatera koden. Kopiera koden till din redaktör och ersätta alla förekomster av < med < Visa koden korrekt. I denna artikel förutsätts att läsaren redan vet hur man använder WPF Grid control. Avsnittet resurser nedan innehåller länkar till WPF böcker som jag rekommenderar.

Instruktioner

1Hur man använder en Gridsplitter i WPF

Skapa ett WPF-program i Visual Studio 2008 och inrätta ett rutnät med en rad och två kolumner. Placera sedan ett textblock i varje rutnätscell. XAML bör se ut ungefär så här:

< fönster x:Class="GridsplitterSample.Window1"

xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot; Title=&quot;GridSplitter Sample&quot; Height=&quot;300&quot; Width=&quot;300&quot;> &lt;Grid> &lt;Grid.RowDefinitions> &lt;RowDefinition>&lt;/RowDefinition> &lt;/Grid.RowDefinitions> &lt;Grid.ColumnDefinitions> &lt;ColumnDefinition>&lt;/ColumnDefinition> &lt;ColumnDefinition>&lt;/ColumnDefinition> &lt;/Grid.ColumnDefinitions>

&lt;TextBlock Grid.Row=&quot;0&quot; Grid.Column=&quot;0&quot; Background=&quot;LightGray&quot; Margin=&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; Background=&quot;LightGreen&quot;>Block 2&lt;/TextBlock> &lt;/Grid>

< / Fönster >

2Hur man använder en Gridsplitter i WPF

Lägga till en Gridsplitter. Detta kan göras på två olika sätt. Den första tekniken är att skapa en separat kolumn eller rad tillägnad Gridsplitter. Den andra tekniken är att lägga till Gridsplitter till en befintlig kolumn. Denna artikel kommer att Visa med hjälp av andra tekniken. Lägga till en Gridsplitter detta sätt bara kräver en enda rad XAML:

< GridSplitter Grid.Row="0" Grid.Column="0" HorizontalAlignment = "Rätt" Width = "4" bakgrund = "Gul" / >

Egenskapen horizontalAlignment styr vilken sida av kolumnen splitter visas på.

3 Observera att du inte kan se splitter när du kör programmet. Detta är eftersom TextBlock är full bredd på kolumnen och återges framför splitter.

4 Vet att ett sätt att åtgärda det här problemet skulle vara att ändra z-ordningen på kontrollerna genom att sätta GridSplitter efter TextBlock eller genom att uttryckligen ange egenskapen ZIndex. Felet med detta tillvägagångssätt är att GridSplitter skulle skymma den högra kanten av TextBlock.

5Hur man använder en Gridsplitter i WPF

Åtgärda detta på rätt sätt genom att en marginal på höger sida av textblocket så att det finns utrymme för Gridsplitter att samexistera med TextBlock i kolumnen. Den final koden ser ut så här:

< fönster x:Class="GridsplitterSample.Window1"

xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot; Title=&quot;GridSplitter Sample&quot; Height=&quot;300&quot; Width=&quot;300&quot;> &lt;Grid> &lt;Grid.RowDefinitions> &lt;RowDefinition>&lt;/RowDefinition> &lt;/Grid.RowDefinitions> &lt;Grid.ColumnDefinitions> &lt;ColumnDefinition>&lt;/ColumnDefinition> &lt;ColumnDefinition>&lt;/ColumnDefinition> &lt;/Grid.ColumnDefinitions>

&lt;GridSplitter Grid.Row=&quot;0&quot; Grid.Column=&quot;0&quot; HorizontalAlignment=&quot;Right&quot; Width=&quot;4&quot; Background=&quot;Yellow&quot;/> &lt;TextBlock Grid.Row=&quot;0&quot; Grid.Column=&quot;0&quot; Margin=&quot;0 0 4 0&quot; Background=&quot;LightGray&quot;>Text Block&lt;/TextBlock> &lt;TextBlock Grid.Row=&quot;0&quot; Grid.Column=&quot;1&quot; Background=&quot;LightGreen&quot;>Text Block 2&lt;/TextBlock> &lt;/Grid>

< / Fönster >

6 Kör programmet och se två textblock och en splitter som låter dig ändra storlek på dem.