Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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# 在C Win Phone 8应用程序中以编程方式创建一组按钮_C#_Windows Phone 8 - Fatal编程技术网

C# 在C Win Phone 8应用程序中以编程方式创建一组按钮

C# 在C Win Phone 8应用程序中以编程方式创建一组按钮,c#,windows-phone-8,C#,Windows Phone 8,我的C文件中有一个问题。我必须在特定位置以编程方式创建6个按钮。但是我的for循环不起作用 只显示一个按钮,而不是所有按钮 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Navigation; using Microsoft.P

我的C文件中有一个问题。我必须在特定位置以编程方式创建6个按钮。但是我的for循环不起作用

只显示一个按钮,而不是所有按钮

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
//using System.Array;

namespace AimPass
{
     public partial class main : PhoneApplicationPage
     {
    public main()
     {
        InitializeComponent();

    }

private void newbutton(object sender, RoutedEventArgs e)
    {
 // How many buttons do you want ?
        int NumOfButtons = 6;
        // X Location of each created button in the panel
        int loc = 20;
        for (int i = 1; i <= NumOfButtons; i++)
        {
            Button btn = new Button();
            {
                btn.Name = "Btn-" + i.ToString();
              btn.Size= new Size(50, 20);
               btn.Tag = i;
                btn.Content = "Browse-" + i.ToString();
              btn.location = new Point(5, loc);
            }
            //Add Click event Handler for each created button
           btn.Click += Buttons_Click;
            loc += 20;
            // Add the created btn to grid
            grid.Children.Add(btn);
        }
}

}
循环不起作用。除了6个按钮外,只有一个按钮

我想在一个特定的位置添加按钮。所以这些错误符合我的要求。。
首先,Windows Phone中的按钮没有大小和位置。你为什么认为他们会这样做?除了大小之外,还有两个属性:宽度和高度

至于位置,XAML不是这样工作的。网格是一种特殊的控件,用于创建布局并定义网格中所需的列数和行数。然后将控件放置在单个单元格内,也可以使控件跨越单元格

也许您应该先了解一下XAML,这里有一个很好的起点:

- 编辑:添加用于在第一行和第一列中放置按钮的示例代码。请注意,您必须在XAML或代码中定义网格和列定义

grid.Children.Add(btn);
Grid.SetRow(btn, 0);

Grid.SetColumnbtn,0

我还没来得及弄清楚这一点……所以,看看你会得到你读到的东西。。 它有点长,但我认为它会帮助你们理解你们在寻找什么。你们可以在一个循环中同时添加行和按钮,但多一点总是好的

这是你的解决方案,但我认为你走错了路

private void newbutton()
    {
        // How many buttons do you want ?
        int NumOfButtons = 6;
        // X Location of each created button in the panel
        StackPanel stkpanel = new StackPanel();
        stkpanel.Orientation = Orientation.Horizontal;
        int loc = 20;
        for (int i = 1; i <= NumOfButtons; i++)
        {
            Button btn = new Button();
            {
                btn.Name = "Btn-" + i.ToString();
                btn.Height = 20;
                btn.Width = 50;
                btn.Foreground = new SolidColorBrush(Colors.White);
                btn.Content = "btnnum" + i.ToString();
                btn.Tag = i;
                btn.Content = "Browse-" + i.ToString();
                btn.Margin = new Thickness(5 + loc, 5, 5, 5);
                btn.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top;
            }
            //Add Click event Handler for each created button
            btn.Click += btn_Click;
            loc += 20;
            // Add the created btn to grid
            stkpanel.Children.Add(btn);
        }
        grid.Children.Add(stkpanel);
    }

    void btn_Click(object sender, RoutedEventArgs e)
    {
       // throw new NotImplementedException();
    }

Krybooltype n当前上下文中也不包含其他许多错误..?此类错误的可能解决方案是什么..我猜您错过了第一行。Grdbooltype是在那个里定义的。你们知道把我的控件放在网格行或列中的语法吗。。??
private void newbutton()
    {
        // How many buttons do you want ?
        int NumOfButtons = 6;
        // X Location of each created button in the panel
        StackPanel stkpanel = new StackPanel();
        stkpanel.Orientation = Orientation.Horizontal;
        int loc = 20;
        for (int i = 1; i <= NumOfButtons; i++)
        {
            Button btn = new Button();
            {
                btn.Name = "Btn-" + i.ToString();
                btn.Height = 20;
                btn.Width = 50;
                btn.Foreground = new SolidColorBrush(Colors.White);
                btn.Content = "btnnum" + i.ToString();
                btn.Tag = i;
                btn.Content = "Browse-" + i.ToString();
                btn.Margin = new Thickness(5 + loc, 5, 5, 5);
                btn.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top;
            }
            //Add Click event Handler for each created button
            btn.Click += btn_Click;
            loc += 20;
            // Add the created btn to grid
            stkpanel.Children.Add(btn);
        }
        grid.Children.Add(stkpanel);
    }

    void btn_Click(object sender, RoutedEventArgs e)
    {
       // throw new NotImplementedException();
    }
 Grid grdbooltype = new Grid();
            grdbooltype.Name = "Grid_" + keybooltype;
            grdbooltype.Margin = new Thickness(0, 20, 20, 0);
            grdbooltype.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto });
            grdbooltype.RowDefinitions.Add(new RowDefinition());

            TextBlock objtextblock = new TextBlock();
            objtextblock.Text = "Select Image";
            objtextblock.FontSize = 15;
            grdbooltype.Children.Add(objtextblock);
            Grid.SetRow(objtextblock, 0);


            Grid grdtoggleswitch = new Grid();
            grdtoggleswitch.Name = headername;
            grdtoggleswitch.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto });
            grdtoggleswitch.ColumnDefinitions.Add(new ColumnDefinition());

            TextBlock txtblktoggleswitchleft = new TextBlock();
            txtblktoggleswitchleft.FontSize = 15;
            txtblktoggleswitchleft.VerticalAlignment = VerticalAlignment.Center;
            txtblktoggleswitchleft.Text = headername;
            Grid.SetColumn(txtblktoggleswitchleft, 0);

            ToggleSwitch toggleswitch = new ToggleSwitch();
            toggleswitch.Name = key;
            toggleswitch.HorizontalAlignment = HorizontalAlignment.Right;
            toggleswitch.Padding = new Thickness(0);
            toggleswitch.IsOn = defaultvalue;
            toggleswitch.Margin = new Thickness(0, 0, 0, 0);
            toggleswitch.OnContent = "On";
            toggleswitch.OffContent = "Off";
            Grid.SetColumn(toggleswitch, 1);

            grdtoggleswitch.Children.Add(txtblktoggleswitchleft);
            grdtoggleswitch.Children.Add(toggleswitch);

            Grid.SetRow(grdtoggleswitch, 1);

            grdbooltype.Children.Add(grdtoggleswitch);