0

サークルボタンを作成し、その位置をプログラマチックに設定するには? ボタンの配列を作成してその位置を設定しようとしていますが、コードが正しく機能していません。すべてのボタンが 1 か所に表示され、円ではありません。

    private void addButtons(int hLimit, int vLimit)
    {
        dotButton[] dotsArray = new dotButton[hLimit * vLimit];

        int scale = 30;
        int yStart = 100;
        int xStart = 50;
        int yEnd = yStart + (hLimit - 1)*scale;
        int xEnd = xStart + (vLimit - 1)*scale;


        for (int i = 0; i < hLimit; ++i)
        {
            for (int j = 0; j < vLimit; ++j)
            {
                int id = j*hLimit + i;
                dotsArray[id] = new dotButton(id, j, i);
                dotsArray[id].Width = Width = 10;
                dotsArray[id].Height = Height = 10;
                dotsArray[id].Style = Resources["Sircle Button"] as Style;
                dotsArray[id].Click += new RoutedEventHandler(dotClick);
                double x = xStart + j * scale - Width/2;
                double y = yStart + i * scale - Height/2;
                dotsArray[id].Margin = new Thickness(x, y, x + Width, y + Height);

                myGrid.Children.Add(dotsArray[id]);
            }
        }
    }

dotButton は私が書いたボタンのクラスです

    public class dotButton : Button
{
    private int id;
    private int x;
    private int y;

    public int ID
    {
        get { return id; }
        set { id = value; }
    }
    public int X
    {
        get { return x; }
        set { x = value; }
    }
    public int Y
    {
        get { return y; }
        set { y = value; }
    }

    public dotButton(int ID, int X, int Y)
    {
        this.ID = ID;
        this.X = X;
        this.Y = Y;
    }
}

私は何を間違っていますか?

また、アプリが起動するとこんな感じ。なぜそれが起こっているのですか?

ここに画像の説明を入力

4

0 に答える 0