在Xamarin Forms中创建行使用BoxView

时间:2016-06-23 08:05:47

标签: c# xamarin.forms xamarin-studio

我需要为每个BoxView创建一个由多个WidthRequest=0.20830 s(HeightRequest=5BoxView组成的行。序列中将有1440 BoxView个排列,以便创建一条线(大约WidthRequest=300)。

我的代码 -

public partial class timeManagement : ContentPage
{
    double oneMinute=0.20833333;
    public timeManagement ()
    {
        InitializeComponent ();
        StackLayout stack = new StackLayout{Orientation=StackOrientation.Horizontal,                
        };

        for(int i=1;i<=14;i++)
        {
            BoxView piece_ofLine = new BoxView
            { 
                HeightRequest=5,
                WidthRequest=5,
                Color=Color.Red
            };

            if (i >= 5 && i <= 9) {
                stack.Children.Add (piece_ofLine);
                piece_ofLine.Color = Color.Green;
            } else {
                stack.Children.Add (piece_ofLine);
                piece_ofLine.Color = Color.Red;
            }

        }


        Content = new StackLayout {
            Padding =50, 
            Spacing=0,

            Children = {
                stack
            }
        };

    }
}

输出为 - enter image description here

但我希望所有的盒子并排放置,所以它看起来像一条线。

1 个答案:

答案 0 :(得分:1)

这里有一些问题

  1. StackLayout的默认方向为Vertical,因此您需要在stack变量上设置

  2. 您需要为添加到堆栈的每个BoxView创建一个新实例。否则它将一遍又一遍地添加相同的一个。最后你会有一个。

  3. 我认为你会希望他们直接站在彼此的一边。如果是这种情况,我认为最明确地将Spacing的{​​{1}}设置为StackLayout

  4. 是最安全的