Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在WPF中向画布添加多个按钮?_C#_Wpf_Canvas_Grid_Togglebutton - Fatal编程技术网

C# 如何在WPF中向画布添加多个按钮?

C# 如何在WPF中向画布添加多个按钮?,c#,wpf,canvas,grid,togglebutton,C#,Wpf,Canvas,Grid,Togglebutton,我可以将多个按钮控件添加到网格面板和堆栈面板,但我无法将其添加到画布面板有什么方法可以做到吗 请查找下面的网格和堆栈代码 foreach (string subfolder in Directory.GetDirectories(path)) { ToggleButton btn = new ToggleButton(); btn.Name = "btn" + column.ToString(); btn.

我可以将多个按钮控件添加到网格面板和堆栈面板,但我无法将其添加到画布面板有什么方法可以做到吗

请查找下面的网格和堆栈代码

 foreach (string subfolder in Directory.GetDirectories(path))
        {
            ToggleButton btn = new ToggleButton();
            btn.Name = "btn" + column.ToString();
            btn.Content = subfolder.Substring(subfolder.LastIndexOf("\\") + 1);
            btn.Tag = subfolder;
            btn.Margin = new Thickness(15, 15, 10, 0);
            btn.Width = 200;
            btn.Height = 50;
            btn.Checked += btn_Checked;
            btn.Unchecked += btn_Unchecked;
            btn.HorizontalAlignment = HorizontalAlignment.Left;                
            GridPanel.Children.Add(btn);//Adding controls to Grid Panel
       }
如何对画布面板执行相同操作?
提前感谢。

您可以使用完全相同的方式向
画布添加元素。只需设置元素的
Canvas.Left
Canvas.Top
附加属性,以指定其在
Canvas
中的位置:

Canvas.SetLeft(btn, 10.0);
Canvas.SetTop(btn, 15.0);
theCanvas.Children.Add(btn);
如果看不到元素,则应确保已为
画布
指定了一些大小:

<Canvas x:Name="theCanvas" Width="100" Height="100" />


我会处理这个问题,并在相同的基础上更新您。更好的方法是:不要在代码隐藏中创建UI元素。在ItemTemplate中使用带有ToggleButton的ItemsControl,并在ItemsControl的ItemsPanel中使用所需的面板。@Clemens,我是WPF新手。你能分享一个链接吗?如何将控件动态添加到ItemsControl's@Anjali我在谷歌上搜索了“wpf itemscontrol按钮”:@Anjali只是一张便条——在那里你也可以得到帮助。