Добавление элементов управления в GroupBox во время выполнения - PullRequest
4 голосов
/ 02 октября 2011

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

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);

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

Ответы [ 2 ]

6 голосов
/ 02 октября 2011

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

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

grid1.Children.Add(textBlock1);
groupBox1.Content = grid1;
0 голосов
/ 03 января 2017

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

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);
 }

Конечно, оператор foreach только для примера :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...