/ / C # WPF-Rasterspalten falsch interpretiert - c #, wpf, xaml

C # WPF-Rasterspalten falsch interpretiert - c #, wpf, xaml

Ich habe angefangen, eine neue Anwendung in WPF C # zu entwickeln. Das Problem, das ich habe, ist betreffend Rasterspaltedefinitionen.

Ich habe mein Fenster in verschiedene Abschnitte unterteilt, wobei "Zeilen- und Spalten-Definitionen" verwendet wurden (siehe Code unten).

Ich habe zwei Reihen. Die erste ist derzeit leer, die zweite enthält ein neues Gitter, das weiter in Spalten unterteilt ist. Alle Gitter sind innerhalb einer Grenze.

Das seltsame Verhalten, das ich bekomme, ist dieser Abschnitt des Codes:

<Border BorderThickness="1" BorderBrush="#ffcd22"  Grid.Column="1">
<Grid>

</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22"  Grid.Column="2">
<Grid>

</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22"  Grid.Column="3">
<Grid>

</Grid>
</Border>

Das Problem ist, dass das erste "Subgrid" eigentlich istentspricht dem zweite Spalte, Die zweite und dritte Spalte beziehen sich auf die dritte Spalte. Mit anderen Worten, wenn ich irgendeine Art von Kontrolle in das zweite Subgitter (das mit Grid.Column = "2") setze, erscheint das Steuerelement aus irgendeinem Grund in der dritten Spalte.

Ich habe damit herumgespielt und kann das Verhalten, das ich bekomme, nicht verstehen.

Ein anderes Beispiel: Ich habe in der zweiten Spalte ein Steuerelement wie folgt gesetzt:

<Border BorderThickness="1" BorderBrush="#ffcd22"  Grid.Column="2">
<Grid>
<TextBox Width="100" Height="50"></TextBox>
</Grid>
</Border>

Das Bild unten zeigt, was ich bekommen habe: Bildbeschreibung hier eingeben

Vollständiger XAML-Code:

<Border BorderThickness="1" BorderBrush="#ffcd22" Margin="10,10,10,10">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border BorderThickness="1" BorderBrush="#ffcd22" Margin="-1,-1,-1,-1" Grid.Row="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Border BorderThickness="1" BorderBrush="#ffcd22"  Grid.Column="1">
<Grid>

</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22"  Grid.Column="2">
<Grid>

</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22"  Grid.Column="3">
<Grid>

</Grid>
</Border>
</Grid>
</Border>
</Grid>

Antworten:

2 für die Antwort № 1

Das Problem ist, dass die Nummerierung der Spalte bei 0 beginnt. Sie sollten Ihren Code folgendermaßen ändern:

<Border BorderThickness="1" BorderBrush="#ffcd22"  Grid.Column="0">
<Grid>

</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22"  Grid.Column="1">
<Grid>

</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22"  Grid.Column="2">
<Grid>

</Grid>
</Border>