涉及知识点
1 Grid 添加4*4网格
<VerticalStackLayout Padding="20">
<Grid x:Name="grid" RowDefinitions="*,*,*,*" ColumnDefinitions="*,*,*,*" HeightRequest="300" WidthRequest="300" RowSpacing="3" ColumnSpacing="3"/>
<Label x:Name="lblBlockNum" FontSize="Large" Margin="0,30,0,20"/>
</VerticalStackLayout>
2 用代码在4*4单元格的按钮
public MainPage()
{
InitializeComponent();
blockID = 0;
for (int i = 0; i < 16; i++)
{
Button btn = new Button()
{
BackgroundColor = Colors.Black,
CornerRadius = 0,
ZIndex = 1 << i
};
//btn.Clicked += Btn_Clicked;
grid.Add(btn,i%4,i/4);
}
}
3 //添加按钮事件 btn.Clicked += Btn_Clicked;
blockID = 0;
for (int i = 0; i < 16; i++)
{
Button btn = new Button()
{
BackgroundColor = Colors.Black,
CornerRadius = 0,
ZIndex = 1 << i
};
btn.Clicked += Btn_Clicked;
grid.Add(btn,i%4,i/4);
}
}
private void Btn_Clicked(object sender, EventArgs e)
{
Button btn = (Button)sender;
if (btn.BackgroundColor == Colors.Black)
{
btn.BackgroundColor = Colors.Red;
blockID |= btn.ZIndex;
}
else {
btn.BackgroundColor = Colors.Black;
blockID &= btn.ZIndex;
}
lblBlockNum.Text = blockID.ToString();
}