在运行时向GroupBox添加控件

5

我正在尝试在运行时创建一个GroupBox,向其中添加一个Grid(或StackPanel),然后在其上放置一些TextBlock。这是我尝试过的代码:

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
据我所知,Grid.Children.Add 返回一个 int,这不是您想要设置 groupBox1 内容的方式。
作为一名非 WPF 专家,我的一个未经测试的想法是将网格设置为您的 groupbox 的内容。
grid1.Children.Add(textBlock1);
groupBox1.Content = grid1;

啊,我明白了,但现在我的问题是如何在运行时将网格放置在GroupBox内? - kr13
1
刚刚尝试了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);
 }

当然,foreach语句只是为了举例而已 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接