在 Xamarin Forms 中使用 BoxView 创建行
Create line use BoxView in Xamarin Forms
我需要创建一个由多个 BoxView
组成的行(每个 BoxView
对应 WidthRequest=0.20830
和 HeightRequest=5
)。将有 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
}
};
}
}
输出为-
但我希望所有方框并排放置,这样看起来就像一条线。
这里有一些问题
StackLayout
的默认方向是 Vertical
,因此您需要在 stack
变量上设置它
您需要为添加到堆栈的每个 BoxView
创建一个新实例。否则它只会一遍又一遍地添加相同的内容。最后你只会有一个。
我假设您希望它们直接位于彼此的一侧。如果是这种情况,我认为将 StackLayout
的 Spacing
显式设置为 0
是最安全的
我需要创建一个由多个 BoxView
组成的行(每个 BoxView
对应 WidthRequest=0.20830
和 HeightRequest=5
)。将有 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
}
};
}
}
输出为-
但我希望所有方框并排放置,这样看起来就像一条线。
这里有一些问题
StackLayout
的默认方向是Vertical
,因此您需要在stack
变量上设置它您需要为添加到堆栈的每个
BoxView
创建一个新实例。否则它只会一遍又一遍地添加相同的内容。最后你只会有一个。我假设您希望它们直接位于彼此的一侧。如果是这种情况,我认为将
StackLayout
的Spacing
显式设置为0
是最安全的