wp8如何在stackpanel中动态添加项目

Wp8 how to add items in the stackpanel dynamically

我需要有关在堆栈面板中添加项目的帮助。 我的项目名称是 "kanal" 它的 wp8 imagebutton 项目。 这是我的代码

public mainpage()
{
    InitializeComponent();
    foreach (var kanal in MainPage.kanalllarstatik)
    {
        mystackpanel.Children.Add(kanal);
    }           
}

我需要像这样每行添加 130x130 像素的 3 个按钮项:

Stackpanel 每行只放置一个元素,因此您需要放置一个水平的 stackpanel(在每一行中),然后将三个元素添加到其中。

如果你想要一个 130x130 的控件,你应该使用:

kanel.Height=130;
kanal.Width =130;

代码示例

测试数据

   List<Button> buttons = new List<Button>();
        for (int i = 0; i < 16; i++)
        {
            buttons.Add(new Button
            {
                Height = 130,
                Width = 130,
                Content = new TextBlock
                {
                    Text = i.ToString()
                }
            });
        }

算法

StackPanel horizontalStackPanel = new StackPanel
            {
                Orientation = Orientation.Horizontal
            };

            foreach (Button button in buttons)
            {
                horizontalStackPanel.Children.Add(button);
                if (horizontalStackPanel.Children.Count == 3) //new line
                {
                   myStackPanel.Children.Add(horizontalStackPanel);
                    horizontalStackPanel = new StackPanel
                    {
                        Orientation = Orientation.Horizontal
                    };
                }

            }
            myStackPanel.Children.Add(horizontalStackPanel);

XAML
<StackPanel x:Name="myStackPanel"></StackPanel>

结果

希望对您有所帮助