当前位置:编程学习 > wap >>

wp7下的一个生肖查询

 \


因为生肖是 每12年一个轮回,所以我设定一个起始值1900年(当然这个数是可以任意设的)
然后将用户输入的数减去1900得到的结果用12取余,如果刚好=0那就是鼠年,如果结果是正数,
那得到的结果就是生肖中的排列位数(即索引值),如果结果是负数,加上12就得到生肖中的排列位数
(因为我把生肖表的索引看作是0起始的);例如1902-1900 =2,取余得2,刚好是虎年,而1899-1900=-1取余得-1,
-1+12=11,也就得到猪年了,下面就是代码了:
//添加正则表达式引用
using System.Text.RegularExpressions;
using System.Windows.Media.Imaging;
namespace SelectAnimals
{
public partial class MainPage : PhoneApplicationPage
{
// 构造函数
public MainPage()
{
InitializeComponent();
}
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
SelectBind(System.DateTime.Now.Year, tbNow,imgNow);
}
private void txtUserWrite_LostFocus(object sender, RoutedEventArgs e)
{
//只能输入0~9的数字
string reg = "^[0-9]*$";
if (Regex.IsMatch(this.txtUserWrite.Text, reg))
{
try
{
if (!string.IsNullOrEmpty(this.txtUserWrite.Text))
{
SelectBind(Convert.ToInt32(this.txtUserWrite.Text), tbResult, imgResult);
}

}
catch (Exception)
{
MessageBox.Show("您输入的年份无效,请重新输入");
}
}
else
{
MessageBox.Show("您输入的年份无效,请重新输入");
}
}
/// <summary>
/// 生肖查询方法
/// </summary>
/// <param name="num">年份</param>
/// <param name="tbTxt">显示查询结果的控件</param>
/// <param name="imgName">显示图片的控件</param>
private void SelectBind(int num, TextBlock tbTxt,Image imgName)
{
int numx = (num - 1900) % 12;
//生肖的排序中的位数 (从0开始)
int numy = 0;
if (numx >= 0)//判断用户输入的是1900年前还是后
{
numy = numx;
}
else
{
numy = numx + 12;
}
switch (numy)
{
case 0:
tbTxt.Text = "鼠(mouse)";
ImgBind(imgName, "/Imgs/鼠.png");
break;
case 1:
tbTxt.Text = "牛(ox)";
ImgBind(imgName, "/Imgs/牛.png");
break;
case 2:
tbTxt.Text = "虎(tiger)";
ImgBind(imgName, "/Imgs/虎.png");
break;
case 3:
tbTxt.Text = "兔(rabbit)";
ImgBind(imgName, "/Imgs/兔.png");
break;
case 4:
tbTxt.Text = "龙(dragon)";
ImgBind(imgName, "/Imgs/龙.png");
break;
case 5:
tbTxt.Text = "蛇(snake)";
ImgBind(imgName, "/Imgs/蛇.png");
break;
case 6:
tbTxt.Text = "马(horse)";
ImgBind(imgName, "/Imgs/马.png");
break;
case 7:
tbTxt.Text = "羊(sheep)";
ImgBind(imgName, "/Imgs/羊.png");
break;
case 8:
tbTxt.Text = "猴(monkey)";
ImgBind(imgName, "/Imgs/猴.png");
break;
case 9:
tbTxt.Text = "鸡(chicken)";
ImgBind(imgName, "/Imgs/鸡.png");
break;
case 10:
tbTxt.Text = "狗(dog)";
ImgBind(imgName, "/Imgs/狗.png");
break;
case 11:
tbTxt.Text = "猪(pig)";
ImgBind(imgName, "/Imgs/猪.png");
break;
default:
ImgBind(imgName, "/Imgs/icon.png");
this.tbResult.Text = null;
break;
}
}
/// <summary>
/// 显示图片
/// </summary>
/// <param name="imgName">显示图片的控件</param>
/// <param name="uriStr">生肖图片地址</param>
private void ImgBind(Image imgName,string uriStr)
{
Uri imgUri = new Uri(uriStr, UriKind.Relative);
imgName.Source = new BitmapImage(imgUri);
}
}
}
 
最后说下:本人只是个新手,最多算个菜鸟,如果你是高手请勿喷(留下你的建议或好方法就行o(∩_∩)o “求之不得”),如果你也和我一样是个菜菜,欢迎一起讨论
共享学习经验,一起进步,谢谢!

 

摘自  紫髥客
 
补充:移动开发 , Windows Phone ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,