ASP.NET控件设计时支持之自动格式设置浅析

ASP.NET控件设计时支持之自动格式设置是如何实现的呢?

成都创新互联长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为陆良企业提供专业的成都网站制作、网站设计,陆良网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

先看个图

相信大家都很熟悉吧,我们可以用这个面板很方面的使用预定的样式.我们可以称之为自动格式设置或者自动套用样式.

ControlDesigner类提供了AutoFormats属性,其提供了DesignerAutoFormat类的DesignerAutoFormatCollection集合.我们来看下相关的类.

ASP.NET控件设计时支持之自动格式设置中DesignerAutoFormat 是一个基类,如果你想为你的控件在设计时提供格式化的功能,你可以从此类派生,你必须实现Apply方法,此方法会将相关联的控件设置样式.由于实现比较简单就不再多多了,就直接拿MSDN的例子来看吧. 注意给 IndentLabelDesigner 加上SupportsPreviewControl元数据,这样可以支持预览功能.

 
 
 
 
  1. [Designer(typeof(IndentLabelDesigner)),  
  2.       ToolboxData("﹤{0}:IndentLabel Runat=\"server\"﹥﹤/{0}:IndentLabel﹥")]  
  3.   public class IndentLabel : Label  
  4.   {  
  5.       [SupportsPreviewControl(true)]  
  6.       public class IndentLabelDesigner : LabelDesigner  
  7.       {  
  8.           private DesignerAutoFormatCollection _autoFormats = null;  
  9.  
  10.           public override DesignerAutoFormatCollection AutoFormats  
  11.           {  
  12.               get 
  13.               {  
  14.                   if (_autoFormats == null)  
  15.                   {  
  16.                       _autoFormats = new DesignerAutoFormatCollection();  
  17.                       _autoFormats.Add(new IndentLabelAutoFormat("MyClassic"));  
  18.                       _autoFormats.Add(new IndentLabelAutoFormat("MyBright"));  
  19.                       _autoFormats.Add(new IndentLabelAutoFormat("Default"));  
  20.                   }  
  21.                   return _autoFormats;  
  22.               }  
  23.           }  
  24.       }  
  25.  
  26.       private class IndentLabelAutoFormat : DesignerAutoFormat  
  27.       {  
  28.           public IndentLabelAutoFormat(string name)  
  29.               : base(name)  
  30.           { }  
  31.  
  32.           public override void Apply(Control inLabel)  
  33.           {  
  34.               if (inLabel is IndentLabel)  
  35.               {  
  36.                   IndentLabel ctl = (IndentLabel)inLabel;  
  37.  
  38.                   
  39.                   if (this.Name == "MyClassic")  
  40.                   {  
  41.                        
  42.                       ctl.ForeColor = Color.Gray;  
  43.                       ctl.BackColor = Color.LightGray;  
  44.                       ctl.Font.Size = FontUnit.XSmall;  
  45.                       ctl.Font.Name = "Verdana,Geneva,Sans-Serif";  
  46.                   }  
  47.                   else if (this.Name == "MyBright")  
  48.                   {  
  49.                        
  50.                       this.Style.ForeColor = Color.Maroon;  
  51.                       this.Style.BackColor = Color.Yellow;  
  52.                       this.Style.Font.Size = FontUnit.Medium;  
  53.                       ctl.MergeStyle(this.Style);  
  54.                   }  
  55.                   else 
  56.                   {  
  57.                       ctl.ForeColor = Color.Black;  
  58.                       ctl.BackColor = Color.Empty;  
  59.                       ctl.Font.Size = FontUnit.XSmall;  
  60.                   }  
  61.               }  
  62.           }  
  63.       }  
  64.   } 

这么着效果就实现了,这次比较懒,没好好写,还想打算写别的,就先这样吧.

ASP.NET控件设计时支持之自动格式设置的相关内容就向你介绍到这里,希望对你了解ASP.NET控件设计时支持之自动格式设置有帮助。

文章标题:ASP.NET控件设计时支持之自动格式设置浅析
URL地址:http://www.mswzjz.com/qtweb/news44/199744.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联