2010-09-19 12 views
63

Tengo dos cuadrículas dentro de un panel de pila. La primera cuadrícula se denomina GridX. Inicialmente dentro de la cuadrícula hay una matriz 2D de cuadros de texto (RowDefs/ColumnDefs). La definición cuadro de texto en XAML esCómo establecer las posiciones de fila y columna de la cuadrícula mediante programación

<TextBox x:Name="A1" Grid.Row="4" Grid.Column="5" TextAlignment="Center" /> 

Quiero añadir un TextBlock programamtically en la misma posición como parte de Cuadrícula X.

efecto debe ser así

<TextBlock Grid.Row="4" Grid.Column="5" 
    HorizontalAlignment="Left" VerticalAlignment="Top" Text="10" FontSize="8"/> 

Instrucciones para añadir esta. He intentado esto:

TextBlock tblock = new TextBlock(); 
GridX.SetColumn(tblock, cIndex); 
GridX.SetRow(tblock, rIndex); 

pero fracasó.

Una vez más yo probamos este:

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;  

Ahora el problema es que no es TextBlock visible.TextBox lo oculta. ¿Puede ayudar a

+0

El código se actualizó. Ahora el problema es la visibilidad del bloque de texto – Vinod

Respuesta

122

Para las propiedades adjuntas se puede llamar FijarValor en el objeto para el que desea asignar el valor:

tblock.SetValue(Grid.RowProperty, 4); 

O llamar al método conjunto estático (no como un método de instancia que ha intentado) para la propiedad del tipo propietario, en este caso SetRow:

Grid.SetRow(tblock, 4); 
+0

SetRow funcionaba cuando SetValue no: dejaba la fila como está (cero en mi caso) –

17

este es un ejemplo que podría ayudar a alguien:

Grid test = new Grid(); 
test.ColumnDefinitions.Add(new ColumnDefinition()); 
test.ColumnDefinitions.Add(new ColumnDefinition()); 
test.RowDefinitions.Add(new RowDefinition()); 
test.RowDefinitions.Add(new RowDefinition()); 
test.RowDefinitions.Add(new RowDefinition()); 

Label t1 = new Label(); 
t1.Content = "Test1"; 
Label t2 = new Label(); 
t2.Content = "Test2"; 
Label t3 = new Label(); 
t3.Content = "Test3"; 
Label t4 = new Label(); 
t4.Content = "Test4"; 
Label t5 = new Label(); 
t5.Content = "Test5"; 
Label t6 = new Label(); 
t6.Content = "Test6"; 

Grid.SetColumn(t1, 0); 
Grid.SetRow(t1, 0); 
test.Children.Add(t1); 

Grid.SetColumn(t2, 1); 
Grid.SetRow(t2, 0); 
test.Children.Add(t2); 

Grid.SetColumn(t3, 0); 
Grid.SetRow(t3, 1); 
test.Children.Add(t3); 

Grid.SetColumn(t4, 1); 
Grid.SetRow(t4, 1); 
test.Children.Add(t4); 

Grid.SetColumn(t5, 0); 
Grid.SetRow(t5, 2); 
test.Children.Add(t5); 

Grid.SetColumn(t6, 1); 
Grid.SetRow(t6, 2); 
test.Children.Add(t6); 
Cuestiones relacionadas