C# SilverLight中的网格布局

C# SilverLight中的网格布局,c#,silverlight,C#,Silverlight,我想要一个显示搜索结果的网格布局。电网应有受益所有人、商业运营商和注册所有人。结果应显示在右标题下 我正在尝试实现此布局: // Create a 3 column grid StackPanel deptStackPanel = new StackPanel(); deptStackPanel.Margin = new Thickness(10); stackPanelSearchResults.Children.Add(deptStackPanel); Grid.SetColumn(dept

我想要一个显示搜索结果的网格布局。电网应有受益所有人、商业运营商和注册所有人。结果应显示在右标题下

我正在尝试实现此布局:

// Create a 3 column grid
StackPanel deptStackPanel = new StackPanel();
deptStackPanel.Margin = new Thickness(10);
stackPanelSearchResults.Children.Add(deptStackPanel);
Grid.SetColumn(deptStackPanel, 3);
Grid.SetRow(deptStackPanel, 3);

// Add headlines for theese columns
TextBlock deptListHeadingBeneficialOwner = new TextBlock();
deptListHeadingBeneficialOwner.Text = "Beneficial Owner";

TextBlock deptListHeadingCommercialOperator = new TextBlock();
deptListHeadingCommercialOperator.Text = "Commercial Operator";

TextBlock deptListHeadingRegisteredOwnerName = new TextBlock();
deptListHeadingRegisteredOwnerName.Text = "Registered Owner";

deptStackPanel.Children.Add(deptListHeadingBeneficialOwner);
deptStackPanel.Children.Add(deptListHeadingCommercialOperator);
deptStackPanel.Children.Add(deptListHeadingRegisteredOwnerName);
Grid.SetColumn(deptListHeadingBeneficialOwner, 0);
Grid.SetColumn(deptListHeadingCommercialOperator, 1);
Grid.SetColumn(deptListHeadingRegisteredOwnerName, 2);

但我得到的是:

// Create a 3 column grid
StackPanel deptStackPanel = new StackPanel();
deptStackPanel.Margin = new Thickness(10);
stackPanelSearchResults.Children.Add(deptStackPanel);
Grid.SetColumn(deptStackPanel, 3);
Grid.SetRow(deptStackPanel, 3);

// Add headlines for theese columns
TextBlock deptListHeadingBeneficialOwner = new TextBlock();
deptListHeadingBeneficialOwner.Text = "Beneficial Owner";

TextBlock deptListHeadingCommercialOperator = new TextBlock();
deptListHeadingCommercialOperator.Text = "Commercial Operator";

TextBlock deptListHeadingRegisteredOwnerName = new TextBlock();
deptListHeadingRegisteredOwnerName.Text = "Registered Owner";

deptStackPanel.Children.Add(deptListHeadingBeneficialOwner);
deptStackPanel.Children.Add(deptListHeadingCommercialOperator);
deptStackPanel.Children.Add(deptListHeadingRegisteredOwnerName);
Grid.SetColumn(deptListHeadingBeneficialOwner, 0);
Grid.SetColumn(deptListHeadingCommercialOperator, 1);
Grid.SetColumn(deptListHeadingRegisteredOwnerName, 2);

我的C#/SilverLight代码:

// Create a 3 column grid
StackPanel deptStackPanel = new StackPanel();
deptStackPanel.Margin = new Thickness(10);
stackPanelSearchResults.Children.Add(deptStackPanel);
Grid.SetColumn(deptStackPanel, 3);
Grid.SetRow(deptStackPanel, 3);

// Add headlines for theese columns
TextBlock deptListHeadingBeneficialOwner = new TextBlock();
deptListHeadingBeneficialOwner.Text = "Beneficial Owner";

TextBlock deptListHeadingCommercialOperator = new TextBlock();
deptListHeadingCommercialOperator.Text = "Commercial Operator";

TextBlock deptListHeadingRegisteredOwnerName = new TextBlock();
deptListHeadingRegisteredOwnerName.Text = "Registered Owner";

deptStackPanel.Children.Add(deptListHeadingBeneficialOwner);
deptStackPanel.Children.Add(deptListHeadingCommercialOperator);
deptStackPanel.Children.Add(deptListHeadingRegisteredOwnerName);
Grid.SetColumn(deptListHeadingBeneficialOwner, 0);
Grid.SetColumn(deptListHeadingCommercialOperator, 1);
Grid.SetColumn(deptListHeadingRegisteredOwnerName, 2);

从xaml文件或后端在布局网格内添加三个网格。在其中放置一个堆栈面板,然后为数据添加文本块。您只需将文本块一个接一个地添加

我自己找到了解决方案:

// Create the Grid
            Grid myGrid = new Grid();
            myGrid.Width = 400;
            myGrid.Margin = new Thickness(9, 0, 0, 0);
            myGrid.HorizontalAlignment = HorizontalAlignment.Left;
            myGrid.VerticalAlignment = VerticalAlignment.Top;
            myGrid.ShowGridLines = true;

            // Define the Columns
            ColumnDefinition colDef1 = new ColumnDefinition();
            ColumnDefinition colDef2 = new ColumnDefinition();
            ColumnDefinition colDef3 = new ColumnDefinition();
            myGrid.ColumnDefinitions.Add(colDef1);
            myGrid.ColumnDefinitions.Add(colDef2);
            myGrid.ColumnDefinitions.Add(colDef3);

            // Define the Rows
            RowDefinition rowDef1 = new RowDefinition();
            RowDefinition rowDef2 = new RowDefinition();
            RowDefinition rowDef3 = new RowDefinition();
            RowDefinition rowDef4 = new RowDefinition();
            myGrid.RowDefinitions.Add(rowDef1);
            myGrid.RowDefinitions.Add(rowDef2);
            myGrid.RowDefinitions.Add(rowDef3);
            myGrid.RowDefinitions.Add(rowDef4);

            // Add the second text cell to the Grid
            TextBlock txtBeneficialOwner = new TextBlock();
            txtBeneficialOwner.Text = "Beneficial Owner";
            txtBeneficialOwner.FontWeight = FontWeights.Bold;
            Grid.SetRow(txtBeneficialOwner, 0);
            Grid.SetColumn(txtBeneficialOwner, 0);

            // Add the third text cell to the Grid
            TextBlock txtCommercialOperator = new TextBlock();
            txtCommercialOperator.Text = "Commercial Operator";
            txtCommercialOperator.FontWeight = FontWeights.Bold;
            txtCommercialOperator.Margin = new Thickness(9, 0, 0, 4);
            Grid.SetRow(txtCommercialOperator, 0);
            Grid.SetColumn(txtCommercialOperator, 1);

            // Add the fourth text cell to the Grid
            TextBlock txtRegisteredOwnerName = new TextBlock();
            txtRegisteredOwnerName.Text = "Registered Owner";
            txtRegisteredOwnerName.FontWeight = FontWeights.Bold;
            txtRegisteredOwnerName.Margin = new Thickness(9, 0, 0, 4);
            Grid.SetRow(txtRegisteredOwnerName, 0);
            Grid.SetColumn(txtRegisteredOwnerName, 2);

            // Add the TextBlock elements to the Grid Children collection
            myGrid.Children.Add(txtBeneficialOwner);
            myGrid.Children.Add(txtCommercialOperator);
            myGrid.Children.Add(txtRegisteredOwnerName);
            stackPanelSearchResults.Children.Add(myGrid);