2016-04-04 10 views
1

Ich versuche, die Gitterzeilen-/Spaltendefinitionen in meiner wpf Anwendung zu verwenden. Im Moment muss ich eine Listenansicht innerhalb einer GroupBox implementieren. Hier muss ich die Spaltendefinitionen ignorieren, die ich oben in der Ansicht eingestellt habe.Wpf - Gitter mit Zeilen- und Spaltendefinition - Wie man Spalten für einige Zeilen ignoriert

Zeilen- und Spaltendefinitionen:

 <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="260" /> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="250" /> 
     <ColumnDefinition Width="20" /> 
     <ColumnDefinition Width="180" /> 
     <ColumnDefinition Width="20" /> 
     <ColumnDefinition Width="180" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 

Hier sehen Sie, dass ich eine RowDefinition mit einer Höhe von 260 haben diese sollte meine Listenansicht enthalten. Das Problem ist, dass es innerhalb der Spalten ist, die ich gemacht habe und deshalb wird es nicht den ganzen Raum brauchen. Gibt es irgendwie eine Einstellung, so dass diese Zeile die von mir gesetzten Spalten ignoriert? Ich möchte immer noch, dass die Spalten für die anderen Zeilen verwendet werden.

Hier sehen Sie ein Bild davon, wie es aussieht:

enter image description here

Hoffnung jemand helfen kann, guten Tag.

Antwort

4

Verwenden Sie einfach angebracht Eigenschaft Grid.ColumnSpan:

<ListView Grid.ColumnSpan="6"/> 

Es wird Ihre ListView für 6 Spalten erweitern.

Einfache Beratung über die Benutzeroberfläche:

Ich schlage vor, Sie resizable XAML zu erstellen, nicht statisch. Ich meine, es ist nicht gut:

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="260" /> 
    <RowDefinition Height="*" /> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="250" /> 
    <ColumnDefinition Width="20" /> 
    <ColumnDefinition Width="180" /> 
    <ColumnDefinition Width="20" /> 
    <ColumnDefinition Width="180" /> 
    <ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 

Es ist jedoch besser:

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="3*" /> 
    <RowDefinition Height="*" /> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*" /> 
    <ColumnDefinition Width="0.5*" /> 
    <ColumnDefinition Width="2*" /> 
    <ColumnDefinition Width="0.5*" /> 
    <ColumnDefinition Width="2*" /> 
    <ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 

Es gibt resizable UI (XAML) an jedem Display.

+0

Vielen Dank für Ihre schnelle Antwort. Werde das so schnell wie möglich ausprobieren! – Mandersen

1

Sie können Grid.ColumnSpan="6" auf Ihrem Listenansicht festlegen. Es wird in der Zeile erweitert.

<ListView Grid.ColumnSpan="6"/> 
1

hängt davon ab, wie Sie die Listenansicht anzeigen möchten.

Sie können ein weiteres Gitter hinzufügen, nur um sicher zu sein, dass Sie etwas später in dieser Zeile hinzufügen möchten.

<Grid grid.Row="6" Grid.Column="0" Grid.ColumnSpan="6"> 
    <ListView> </ListView> 
</Grid>