zoukankan      html  css  js  c++  java
  • C# 控件绘制

    绘制方法:

    1.在控件的paint事件中绘制

    2.绘制成图片,然后作为背景图或图片贴到工作区。

    Bitmap bmp = new Bitmap(IWidth, this.Height);
    Graphics g = Graphics.FromImage(bmp);

    ....

    最后调用即可

    this.BackgroundImage = I_Paint();

    添加功能:

    1.绘制时,添加相应的坐标区域,放到全局字典中,字典中包含区域、热点名称等。

    2.在整个组件上添加MouseMove事件,鼠标经过时判断字典中是否包含该区域

    ....

    3.可以添加相应的委托

    ...

    文本位置:

    StringFormat sFormat = new StringFormat();
    sFormat.Alignment = StringAlignment.Far;
    sFormat.LineAlignment = StringAlignment.Center;

    g.DrawString(strText, drawFont,_Brush , drawRectangle, sFormat);

    取消锯齿:

    g.SmoothingMode = SmoothingMode.AntiAlias; //使绘图质量最高,即消除锯齿
    g.InterpolationMode = InterpolationMode.HighQualityBicubic;
    g.CompositingQuality = CompositingQuality.HighQuality;

    边框绘制:

    ControlPaint.DrawBorder(this.CreateGraphics(), this.ClientRectangle,
    ColorTranslator.FromHtml("#D1D4D4"), 0, ButtonBorderStyle.Solid, //左边
    ColorTranslator.FromHtml("#D1D4D4"), 1, ButtonBorderStyle.Solid, //上边
    ColorTranslator.FromHtml("#D1D4D4"), 1, ButtonBorderStyle.Solid, //右边
    ColorTranslator.FromHtml("#D1D4D4"), 1, ButtonBorderStyle.Solid);//底边

    属性:

    private string typeName = string.Empty;
    [Browsable(true)]//是否在设计器中显示此属性
    [Description("分类名称")]
    public string TypeName
    {
    get { return typeName; }
    set
    {
    typeName = value;
    this.lblTypeName.Text = typeName;
    }
    }

    闪烁

    this.GestationTable.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)
    .SetValue(GestationTable, true, null);

  • 相关阅读:
    Digital Square(hdu4394)搜索
    Substrings(hdu1238)字符串匹配
    Graveyard(poj3154)
    数据库的范式理论
    模和除
    You can Solve a Geometry Problem too (hdu1086)几何,判断两线段相交
    对vector等STL标准容器进行排序操作(转!)
    0 or 1(hdu2608)数学题
    LintCode 4.丑数
    LintCode 9.Fizz Buzz问题
  • 原文地址:https://www.cnblogs.com/sy-ds/p/5177173.html
Copyright © 2011-2022 走看看