当前位置: 首页 > news >正文

大丰建站品牌整合营销推广

大丰建站,品牌整合营销推广,北京网站建设方案案例,德阳中恒网站建设目录 一、涉及到的知识点 1.GDI 2.Thread类 3.使用IEnumerable()迭代器 二、实例 1.源码 2.生成效果#xff1a; 一、涉及到的知识点 1.GDI GDI主要用于在窗体上绘制各种图形图像。 GDI的核心是Graphics类#xff0c;该类表示GDI绘图表面#xff0c;它提供将对象绘制…目录 一、涉及到的知识点 1.GDI 2.Thread类 3.使用IEnumerable()迭代器 二、实例 1.源码 2.生成效果 一、涉及到的知识点 1.GDI GDI主要用于在窗体上绘制各种图形图像。 GDI的核心是Graphics类该类表示GDI绘图表面它提供将对象绘制到显示设备的方法。Graphics类封装了绘制直线、曲线、图形、图像和文本的方法它是进行一切GDI操作的基础类。 本实例使用Graphics类的DrawString方法来绘制动态的文字该方法常用的语法格式如下 public void DrawString(string s,Font font,Brush brush,PointF point)参数说明 s:要绘制的字符串。 font:定义字符串的文本格式。 brush:确定所绘制文本的颜色和纹理。 point:指定所绘制文本的左上角。 2.Thread类 运行C#程序时如果一个任务执行时间过长会导致程序主窗体处于“假死”状态。为了避免这种情况发生可以使用Thread类来创建多线程即每一个线程完成一个功能这样就可以有效地避免程序出现“假死”现象。 本例中使用了Thread thread; //定义线程thread new Thread()方法、thread.Start()、thread.Interrupt()、Thread.Sleep()方法。 其中thread.Abort();  //已经废弃用thread.Interrupt()代替。    3.使用IEnumerable()迭代器 详见本文作者写的其他文章 C#字符串倒序遍历Reverse() vs for循环 vs IEnumerable迭代器 vs ListT vs ListT迭代器 vs IListT vs IListT迭代器-CSDN博客  https://wenchm.blog.csdn.net/article/details/136120594 二、实例 为了使界面具有动态效果可以在界面中实现一些特殊文字的动态效果。使用迭代器遍历文本字符串中的每一个文字然后使用GDI技术在窗体上以不同的字体样式依次绘制每一个文字以便实现文字的动态效果。 1.源码 // 使用迭代器实现文字的动态效果 // 给窗体添加背景图 using System.Resources;namespace _123 {public partial class Form1 : Form{private Panel? panel1;public Form1(){InitializeComponent();BackgroundImage Properties.Resources.GetObject(bc);BackgroundImageLayout ImageLayout.Stretch;StartPosition FormStartPosition.CenterScreen;Load Form1_Load;}private void Form1_Load(object? sender, EventArgs e){// // panel1// panel1 new Panel{Location new Point(321, 12),Name panel1,Size new Size(250, 83),TabIndex 0};// // Form1// AutoScaleDimensions new SizeF(7F, 17F);AutoScaleMode AutoScaleMode.Font;ClientSize new Size(600, 416);Controls.Add(panel1);Name Form1;Text 使用迭代器实现文字的动态效果;//Graphics Car_Paint panel1.CreateGraphics();//实例化绘图对象string CartoonString 编程词典网; //定义要绘制的动态文字Character character new(); //实例化自定义类对象character.CartoonEffect(panel1, CartoonString);//在窗体上显示动态文字}}class Character{Graphics? graphics; //定义Graphics对象static readonly int[] FSize [20, 25, 30]; //设置字体的大小readonly int Str_block 5; //字体间的间隔readonly Font Str_Font new(宋体, FSize[0], FontStyle.Bold);//定义字体样式readonly Color Str_Color Color.Orange; //定义字体颜色float Str_Width 0; //获取字符串的位置float Str_Height 0;float Panel_W 0; //获取控件的宽度float Panel_H 0; //获取控件的高度Color Panel_C; //记录控件的背景颜色float Str_Odd_Width 0;//获取单个文字的宽度Thread? thread; //定义线程/// summary/// 在Panel控件中绘制动画文字/// /summary/// param PanelC_Panel显示文字的容器控件/param/// param stringC_Str文字字符串/parampublic void CartoonEffect(Panel C_Panel, string C_Str){graphics C_Panel.CreateGraphics();//为控件创建Graphics对象Panel_H C_Panel.Height; //获取控件的高度Panel_W C_Panel.Width; //获取控件的宽度Panel_C C_Panel.BackColor; //获取控件背景颜色GetTextInfo(C_Str); //获取文字的大小及位置graphics.FillRectangle( //用控件背景填充控件new SolidBrush(Panel_C), 0, 0, Panel_W, Panel_H);DrawFullText(C_Str, 0); //绘制文字//实例化ParameterizedThreadStart委托线程thread new Thread(new ParameterizedThreadStart(DynamicText!));thread.Start(C_Str); //传递一个字符串的参数}/// summary/// 获取文字的大小及绘制位置/// /summary/// param stringC_Str文字字符串/parampublic void GetTextInfo(string C_Str){SizeF TitSize graphics!.MeasureString(C_Str, Str_Font); //将绘制的字符串进行格式化Str_Width TitSize.Width; //获取字符串的宽度Str_Height TitSize.Height; //获取字符串的高度Str_Odd_Width Str_Width / C_Str.Length; //获取单个文字的宽度Str_Width (Str_Odd_Width Str_block) * C_Str.Length; //获取文字的宽度Str_Width (Panel_W - Str_Width) / 2F; //使文字居中Str_Height Panel_H - Str_Height; //使文字显示在控件底端}/// summary/// 绘制全部文字/// /summary/// param stringC_Str绘制的文字字符串/parampublic void DrawFullText(string C_Str, int n){float Str_Place Str_Width; //单个字符的位置for (int i 0; i C_Str.Length; i)//遍历字符串中的文字{if (i ! n)DrawText(C_Str[i].ToString(), Str_Font, Str_Place, Str_Height); //绘制单个文字Str_Place Str_Odd_Width Str_block; //获取下一个文字的位置}}/// summary/// 绘制单个文字/// /summary/// param nameC_Odd_Str单个文字字符串/param/// param nameS_Font文本样式/param/// param nameleft/param/// param nametop/parampublic void DrawText(string C_Odd_Str, Font S_Font, float left, float top){graphics!.DrawString(C_Odd_Str, S_Font, new SolidBrush(Str_Color), new PointF(left, top));//绘制字符串中单个文字}/// summary/// 通过迭代器实现字符串的遍历/// /summary/// param stringn文字字符串/param/// returns返回单个文字/returnspublic static IEnumerableobject Transpose(string n){if (n.Length 0){foreach (object i in n)yield return i;}}/// summary/// 绘制动态文字/// /summary/// param stringC_Str绘制的文字字符串/parampublic void DynamicText(Object C_Str){float tem_left 0; //获取当前文字的左端位置float tem_top 0; //获取当前文字的顶端位置float tem_width 0; //获取文字的宽度float tem_high 0; //获取文字的高度float tem_place Str_Width; //获取起始文字的位置Font Tem_Font new(黑体, FSize[0], FontStyle.Bold);//定义字体样式int p 0; //记录字符串中文字的索引号int Str_Index 0;try{foreach (object s in Transpose(C_Str.ToString()!))//遍历字符串{for (int i 1; i 5; i){if (i 3)p Convert.ToInt16(Math.Floor(i / 2F));elsep i;DrawFullText(C_Str.ToString()!, Str_Index);Tem_Font new Font(黑体, FSize[p], FontStyle.Bold);//定义字体样式 SizeF TitSize graphics!.MeasureString(s.ToString(),Str_Font);//将绘制的单个文字进行格式化 tem_width TitSize.Width;//获取文字的宽度tem_high TitSize.Height;//获取文字串的高度tem_left tem_place - (tem_width - Str_Odd_Width) / 2F;//获取文字改变大小后的左端位置 tem_top Str_Height - (Str_Height - tem_high) / 2F; //获取文字改变大小后的顶端位置 DrawText(s.ToString()!, Tem_Font, tem_left, tem_top); //绘制单个文字 Thread.Sleep(200); //待待0.2秒graphics.FillRectangle(new SolidBrush(Panel_C), 0, 0, Panel_W,Panel_H);//清空绘制的文字}tem_place Str_Odd_Width Str_block;//计算下一个文字的左端位置 Str_Index 1; //将索引号定位到下一个文字}DrawFullText(C_Str.ToString()!, -1);//恢复文字的原始绘制样式//实例化ParameterizedThreadStart委托线程thread new Thread(new ParameterizedThreadStart(DynamicText!));thread.Start(C_Str); //传递一个字符串的参数}catch//这里之所以用异常语句是在关闭窗体时关闭线程{//thread.Abort(); //已经废弃thread!.Interrupt(); //关闭线程}}} }2.生成效果
http://www.zqtcl.cn/news/447924/

相关文章:

  • 制作网站公司服务器租赁一年的费用网页动画是如何制作出来的
  • 佛山网站优化有莱芜房产网新房
  • 西安英文旅游网站建设中国建筑工程门户商城
  • 山东企业建站软件购物网站是多少
  • 外链收录网站语音识别程序代做网站
  • 天津平台网站建设公司wordpress删除页头页尾
  • 网站加入站长统计wordpress设置手机浏览器
  • 服务器网站备案怎么做网站流量竞品分析
  • 四川省建设工程信息网站上海金融网站制作公
  • php7.2 wordpress黑帽seo软件
  • 网站后台cms做网站项目团队口号
  • 云南哪几个建网站公司九江做网站哪家好
  • 时尚网站模板代码网站模板炫酷
  • 股票网站怎么做动态表格live2d看板娘wordpress
  • 班级网站建设开题报告企业创新平台建设
  • 网站建设有什么要求建设电子商务网站的步骤
  • 百度推广和哪些网站有合作专业网站开发多少钱
  • 相城区住房建设局网站做网站开发电脑配置
  • 成都网站建设制作photoshop网页制作视频教程
  • 深圳网站做的好的公司广州外贸营销网站建设公司
  • 网站你懂我意思正能量晚上不用下载直接进入微信公众号免费模板素材网站
  • 网站设计模板之家南宁seo外包平台
  • 免费舆情网站遵义市双控体系建设网站
  • 企业做网站得多少钱wordpress get_posts
  • 轻淘客网站怎么做申请个人网址
  • 新的网站的建设步骤购物网站首页源码
  • 龙岗网站建设费用明细中山 灯饰 骏域网站建设专家
  • 做catalog的免费网站网站开发一般采用什么框架
  • 网站建设海淀区网站特殊字体
  • 电子商务网站建设情况国风网页设计欣赏