2011-10-01 2 views
3

Я пытаюсь создать GroupBox, добавить Grid (или StackPanel) к нему, а затем поместить на него некоторые текстовые блоки, все во время выполнения. Это то, что я пробовалДобавление элементов управления в GroupBox во время выполнения

GroupBox groupBox1 = new GroupBox(); 
Grid grid1 = new Grid(); 

groupBox1.Width = 85; 
groupBox1.Height = 60; 
grid1.Height = 85; 
grid1.Width = 60; 

groupBox1.Content = grid1.Children.Add(textBlock1); 
groupBox1.Margin = new Thickness(50, 50, 0, 0); 

mainWindow.canvas.Children.Add(groupBox1); 

Но все, что я получаю, это групповой ящик с толстой белой рамкой, в которой ничего нет.

ответ

4

Насколько я вижу, Grid.Children.Add возвращает int, и это не то, что вы хотите установить для содержимого groupBox1.

Непроверенная идея от меня как эксперта, отличного от WPF, заключается в том, чтобы установить сетку в качестве содержимого вашего группового ящика.

grid1.Children.Add(textBlock1); 
groupBox1.Content = grid1; 
+0

Ах, я вижу, но теперь я полагаю, мой вопрос, как сделать Я собираюсь разместить опору внутри группового ящика во время выполнения? – kr13

+0

Просто попробовал groupBox1.Content = grid1 и, похоже, сработал. Спасибо за помощь. – kr13

0

Для простых флажков я использовал этот код:

var container = new FlowLayoutPanel 
{ 
    FlowDirection = FlowDirection.TopDown, 
    Dock = DockStyle.Fill 
}; 
myGroupBox.Controls.Add(container); 
foreach (var myText in textList) 
{ 
    var checkBox = new CheckBox 
    { 
     Text = myText 

    }; 
    container.Controls.Add(checkBox); 
} 

Конечно утверждение Еогеаспа это просто для примера :)

Смежные вопросы