标签:
今天使用C#完成第一个hello world 的程序,但是为了让程序看起来不那么单调,所以增加了自动变色的代码.
首先,先放出来程序的截图
点击开始的时候,hello world 会自动变色.
这里用到的东西也比较简单
主要的知识点是使用委托.
在整个变色过程中是,是不能再UI线程中进行的,这样会阻塞UI线程,造成卡顿,这不是我们想要的效果,这时候我们就应该使用委托来完成
下面贴出代码
//委托对象 DelegateTest delegateObject; delegate void DelegateTest(int i); /// <summary> /// 按钮点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Click(object sender, RoutedEventArgs e) { delegateObject = SetColor; Thread thread = new Thread(ChangeColorThread); thread.Start(); } /// <summary> /// 修改颜色线程 /// </summary> public void ChangeColorThread() { for (int i = 0; i < 100; i++) { //调用委托 this.Dispatcher.BeginInvoke(delegateObject, i); //一秒钟变换一次 Thread.Sleep(1000); } } public void SetColor(int i) { Random r = new Random(); //取随机数 int col = r.Next(0, 5); //调用方法根据不同的数字更新不同的颜色 Title.Foreground = new SolidColorBrush(GetColorValue(col)); } public void UpdateColor() { //循环100次 for (int i = 0; i < 100; i++) { this.Dispatcher.BeginInvoke(delegateObject, i); Thread.Sleep(1000); //睡眠1秒 } } /// <summary> /// 该方法可以用来获取颜色 /// </summary> /// <param name="i"></param> /// <returns></returns> public System.Windows.Media.Color GetColorValue(int i) { switch (i) { case 0: return Colors.Blue ; case 1: return Colors.Brown; case 2: return Colors.Cyan; case 3: return Colors.Green; case 4: return Colors.Red; default: return Colors.Orange; } }
详细的代码已经贴出俩了,内容比较简单,我个人很喜欢使用C#做开发,因为C#的开发速度很快,VS更是号称宇宙第一IDE,有着强大的功能,可以让开发者有更高的开发速度.
标签:
原文地址:http://www.cnblogs.com/MelodyWang/p/4338262.html