Ich habe zwei Gitter in einem Stackpanel. Das erste Raster heißt GridX. Im Raster befindet sich zunächst ein 2D-Array von Textfeldern (RowDefs / ColumnDefs). Die TextBox-Definition in XAML lautet
<TextBox x:Name="A1" Grid.Row="4" Grid.Column="5" TextAlignment="Center" />
Ich möchte einen TextBlock programmgesteuert an derselben Position wie in GridX hinzufügen.
Der Effekt muss so sein
<TextBlock Grid.Row="4" Grid.Column="5"
HorizontalAlignment="Left" VerticalAlignment="Top" Text="10" FontSize="8"/>
Wie man das hinzufügt. Ich habe das versucht:
TextBlock tblock = new TextBlock();
GridX.SetColumn(tblock, cIndex);
GridX.SetRow(tblock, rIndex);
Aber scheiterte.
Wieder habe ich das versucht:
int rIndex = Grid.GetRow(txtBox);
int cIndex = Grid.GetColumn(txtBox);
TextBlock tblock = new TextBlock();
tblock.VerticalAlignment = VerticalAlignment.Top;
tblock.HorizontalAlignment = HorizontalAlignment.Left;
tblock.FontSize = 8;
tblock.Text = rc[i, j - 1];
Grid.SetColumn(tblock, cIndex);
Grid.SetRow(tblock, rIndex);
txtBox.MaxLength = 1;
Das Problem ist nun, dass TextBlock nicht sichtbar ist. TextBox versteckt es. Ich schätze Ihre Hilfe.
Antworten:
Für angehängte Eigenschaften können Sie entweder SetValue für das Objekt aufrufen, für das Sie den Wert zuweisen möchten:
Oder rufen Sie die statische Set-Methode (nicht als Instanzmethode, wie Sie es versucht haben) für die Eigenschaft des Besitzertyps auf, in diesem Fall SetRow:
quelle
Hier ist ein Beispiel, das jemandem helfen könnte:
quelle
quelle
Versuche dies:
quelle