2
はここreleventコードです:なぜStackLayoutのBackgroundColorがLabelsの色をオーバーライドするのですか?
public class App : Application
{
public App()
{
StackLayout stack = new StackLayout
{
BackgroundColor = new Color(245, 240, 236)
};
Grid top = new Grid
{
...
};
Grid grid = new Grid
{
...
};
for (int i = 0; i < 10; i++)
{
Label name = getLabel("Worksheet " + i);
name.TextColor = Color.Black;
grid.Children.Add(name, 0, i);
Label date = getLabel("Opened by me " + new DateTime(2016, 1, i + 1 % 30).ToString("dd MMM yyy"));
grid.Children.Add(date, 1, i);
Label dots = getLabel("dots");
grid.Children.Add(dots, 2, i);
}
Label menu = getTopLabel("menu");
Label header = getTopLabel("Worksheets");
header.FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label));
Label plus = getTopLabel("plus");
Label edit = getTopLabel("edit");
top.Children.Add(menu, 0, 0);
top.Children.Add(header, 1, 0);
top.Children.Add(plus, 2, 0);
top.Children.Add(edit, 3, 0);
stack.Children.Add(top);
stack.Children.Add(grid);
...
}
private Label getLabel(string text)
{
return new Label
{
...
BackgroundColor = Color.White
};
}
private Label getTopLabel(string text)
{
return new Label
{
...
BackgroundColor = new Color(227, 49, 35),
TextColor = Color.Black
};
}
}
私の問題は、私はアプリケーションを実行すると、すべてのグリッドがStackLayoutで定義された1つの背景色で表示されていることです。その他の色定義はすべて無視されます。
レイアウトの背景色はどのように定義できますか?グリッドのセルの背景色はどうしたらいいですか?
スクリーンショット: