前几天在用WPF制作贪吃蛇游戏的时候,遇到了一个非常棘手的问题——下拉菜单选择时的事件问题,在网上查找了很多资料都没解决,最后还是我们帅气的曹老师帮我们讲解了这个问题,才得以解决。那么今天我将这些总结出来,来帮助更多在学习WPF过程中遇到这种问题的朋友。
1、Items属性
属性/方法 | 说明 |
---|---|
Add | 将某一项添加到下拉菜单的选择框中 |
Count | 获取这个下拉菜单集合中的记录/长度 |
Clear | 清空集合并释放对集合中已存在的所有项的引用 |
Insert | 将元素插入到集合中的指定索引处 |
Remove | 从集合或视图总移除指定的项的引用 |
在此,我们发现了一个问题。它和泛型List集合中的用法和方法属性特别相似。
3、在这里我做一个例子,通过for循环的来给下拉菜单中存储文本
string[] a = { "简单", "一般", "困难" };//第一步,先定义一个数组,来存储你想要放在下拉菜单中的值
for (int i = 0; i < a.Length; i++)//第二步,通过for循环来将数组中的值取出来
{
combox.Items.Add(a[i]);//取出来后添加到Items中就添加到了下拉菜单中
}
4、在这里有人会问,是不是要设置下拉菜单不可编辑?我当时也这么想的,但是后来我发现它默认就是不可编辑的
combox.IsEditable = false;//它默认时为false就是关闭的,为true时是打开的
5、然后就是设置默认显示的为下拉菜单中第一个值
combox.SelectedIndex = 0;//设置文本为索引的第一个(简单) 0表示的是索引,就是下拉菜单中的第一个值
6、最后就是当下拉菜单中的选项改变是触发的事件
combox.SelectionChanged += Combox_SelectionChanged;//下拉菜单中文本改变时触发的事件
private void Combox_SelectionChanged(object sender, SelectionChangedEventArgs e)
//这就是改变文本后触发的事件
{
if (combox.Text=="简单")//如果文本变为简单
{
timer1.Interval = TimeSpan.FromMilliseconds(300);//设置两个计时器触发的频率
timer2.Interval = TimeSpan.FromMilliseconds(300);
bj.ImageSource = new BitmapImage(new Uri("E:/C#/C#文件/贪吃蛇游戏3/images/游戏背景图.jpg"));//并且改变canvas中背景中的图片
}
else if (combox.Text=="一般")
{
timer1.Interval = TimeSpan.FromMilliseconds(200);
timer2.Interval = TimeSpan.FromMilliseconds(200);
bj.ImageSource = new BitmapImage(new Uri("E:/C#/C#文件/贪吃蛇游戏3/images/粉色背景.jpg"));
}
else if (combox.Text=="困难")
{
timer1.Interval = TimeSpan.FromMilliseconds(100);
timer2.Interval = TimeSpan.FromMilliseconds(100);
bj.ImageSource = new BitmapImage(new Uri("E:/C#/C#文件/贪吃蛇游戏3/images/蓝色背景.jpg"));
}
game.Background = bj;//将bj赋值给Canvas的背景
}
今天就讲到这里,相信本篇文章对会你会有或多或少的帮助,当然,本片文章如若对大家造成了误导或者说有什么纰漏以及不足之处,希望大家能够在评论区留言来纠正我的错误。