2010-09-19 21 views
63

Tôi có hai Lưới bên trong một Stackpanel. Lưới đầu tiên có tên là GridX. Ban đầu bên trong lưới có một mảng 2D của Textbox (RowDefs/ColumnDefs). Định nghĩa TextBox trong XAML làCách đặt vị trí hàng và cột lưới theo lập trình

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

Tôi muốn thêm một TextBlock programamtically ở vị trí tương tự như một phần của GridX.

Hiệu lực thi hành phải như thế này

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

Làm thế nào để thêm video này. Tôi đã thử điều này:

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

Nhưng không thành công.

Một lần nữa tôi đã cố gắng này:

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;  

Bây giờ vấn đề là TextBlock không phải là visible.TextBox ẩn nó. Bạn có thể giúp

+0

Mã đã được cập nhật.Bây giờ vấn đề là khả năng hiển thị của việc chặn văn bản – Vinod

Trả lời

122

Đối với tài sản gắn liền bạn có thể gọi SetValue trên đối tượng mà bạn muốn gán giá trị:

tblock.SetValue(Grid.RowProperty, 4); 

Hoặc gọi Set phương pháp tĩnh (không phải là một phương pháp dụ như bạn cố gắng) cho các tài sản vào loại chủ sở hữu, trong trường hợp này SetRow:

Grid.SetRow(tblock, 4); 
+0

SetRow hoạt động trong khi SetValue không: nó đã rời hàng như (không trong trường hợp của tôi) –

17

Dưới đây là một ví dụ mà có thể giúp ai đó:

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); 
Các vấn đề liên quan