分析:
分析:
没有边框后这个蛇就看着像是在这个窗口中运行,实际上是在Canvas容器中运行
this.WindowStyle = WindowStyle.None;//设置窗口的边框样式为(无边框)
在xaml界面,点击窗口Window=》》点击属性==》》再点击事件==》》在事件中找到Lodaed事件,然后双击事件后边的空白部分,最后完成添加加载事件
Window_Loaded 表示:在窗口加载完之后执行的事件
分析:
①可以创建Border控件来设置宽高,使它成为正方形,并将正方形设置为圆形,然后设置其位置,并将控件添加到Canvas中
②如何添加到Canvas中?
首先:要在xaml界面,给Canvas定义一个名字
然后:可以通过名字关键字获取到Children.add属性
最后:在add方法中将Border添加到Canvas容器中
此时,我们就创建了一个圆圈,就是蛇头
Border bord = new Border();//创建一个Border控件
//Border 表示在另一个元素四周绘制边框和背景
bord.Background = Brushes.Red;//设置控件的背景颜色
//Backgeound 表示:获取或设置Brush,它填充Border边界之间(实际上就是控件内)的区域
//设置Boder控件的宽度和高度
bord.Width = 40;
bord.Height = 40;
//设置Border控件的边框颜色为(黑色-红色)渐变,角度为0
Canvas.SetLeft(bord, 200);//设置Canvas容器中,bord控件距离左侧的距离
Canvas.SetTop(bord, 200);//设置Canvas容器中,bord控件距离上边的距离
bord.CornerRadius = new CornerRadius(bord.Width / 2);//实现画圆
//CornerRadius 表示:获取或设置一个值,向其表示度的角变Border舍入
//将Border添加到Canvas容器中,首先要在xaml界面给Canvas定义一个名字叫continer(容器)
continer.Children.Add(bord);//将bord控件添加到continer(实际上就是Canvas)容器中
①但是,此时我们遇到了一个问题:就是说3个圆重叠在了一起
问题:就是说3个圆重叠在了一起
分析:这是由于控件的位置是一样的,所以重叠在了一起
解决:我们可以改变它的位置,是在一行排列
②如何改变位置?
1、我们可以假设第一个圆的位置:距离Canvas的距离为500
2、它第二个位置,就应该在第一个圆的左边或者右边(这里我们设置为左边)
3、那么它的距离就等于第一个圆假设的左边距离减去第一个圆的宽度(第三个圆的位置就是减去第一个圆的宽度的二倍),所以我们就可以用i来引导它,i从0-2是三个数,那么乘以i是不是就解决了这个问题呢?
(3)此时,我们不知道哪一个是蛇头,所以我们可以在创建好控件后来判断i的值,如果i=0,那么它就是蛇头,否则,就不是
for (int i = 0; i <3 ; i++)
{
Border bord = new Border();//创建一个Border控件
//Border 表示在另一个元素四周绘制边框和背景
bord.Background = Brushes.Red;//设置控件的背景颜色
//Backgeound 表示:获取或设置Brush,它填充Border边界之间(实际上就是控件内)的区域
//设置Boder控件的宽度和高度
bord.Width = 40;
bord.Height = 40;
if (i==0)
{
bord.Background = Brushes.Red;
}
else
{
bord.Background = Brushes.Blue;
}
//bord.BorderThickness = new Thickness(20);//设置Border控件的边框粗细都为20
//bord.BorderBrush = new LinearGradientBrush(Colors.Black, Colors.Red,45);
//设置Border控件的边框颜色为(黑色-红色)渐变,角度为0
Canvas.SetLeft(bord, 500-i*bord.Width);//设置Canvas容器中,bord控件距离左侧的距离
Canvas.SetTop(bord, 200);//设置Canvas容器中,bord控件距离上边的距离
bord.CornerRadius = new CornerRadius(bord.Width / 2);//实现画圆
//CornerRadius 表示:获取或设置一个值,向其表示度的角变Border舍入
//将Border添加到Canvas容器中,首先要在xaml界面给Canvas定义一个名字叫continer(容器)
continer.Children.Add(bord);//将bord控件添加到continer(实际上就是Canvas)容器中
}