【转】C# 实现用艺术效果显示文本的标签控件

C# 实现用艺术效果显示文本的标签控件

2009-09-28  来自:CS 程序员之窗
  • 摘要:C#实现边框、浮雕、印版效果显示文字的标签控件,可以改变边框的宽度和文字边框的颜色,实现绚丽的文字显示效果。

.NET自带的Label控件显示文本的形式非常单一,只能换换文本颜色、字体,用久了都觉得厌烦了。于是就实现了这个用艺术效果显示文本的标签控件ArtTextLabel,在这个控件中,我只实现了3种效果,其实还有很多其他效果都是可以实现的,大家可以试试。下面看看这3种效果的截图:

ArtTextLabelDemo.png

实现这些效果其实很简单,就是稍微改变一下绘制文本的起始坐标,绘制几次就可以了,分别看看三种不同效果得绘制代码:

1、  边框。

 
          
None.gif private void RenderBordText(Graphics g, PointF point)
ExpandedBlockStart.gifContractedBlock.gif
... {
InBlock.gif
using (Brush brush = new SolidBrush(_borderColor))
ExpandedSubBlockStart.gifContractedSubBlock.gif
...{
InBlock.gif
for (int i = 1; i <= _borderSize; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
...{
InBlock.gif g.DrawString(
InBlock.gif
base.Text,
InBlock.gif
base.Font,
InBlock.gif brush,
InBlock.gif point.X
- i,
InBlock.gif point.Y);
InBlock.gif g.DrawString(
InBlock.gif
base.Text,
InBlock.gif
base.Font,
InBlock.gif brush,
InBlock.gif point.X,
InBlock.gif point.Y
- i);
InBlock.gif g.DrawString(
InBlock.gif
base.Text,
InBlock.gif
base.Font,
InBlock.gif brush,
InBlock.gif point.X
+ i,
InBlock.gif point.Y);
InBlock.gif g.DrawString(
InBlock.gif
base.Text,
InBlock.gif
base.Font,
InBlock.gif brush,
InBlock.gif point.X,
InBlock.gif point.Y
+ i);
ExpandedSubBlockEnd.gif }

ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gif
using (Brush brush = new SolidBrush(base.ForeColor))
ExpandedSubBlockStart.gifContractedSubBlock.gif
...{
InBlock.gif g.DrawString(
InBlock.gif
base.Text, base.Font, brush, point);
ExpandedSubBlockEnd.gif }

ExpandedBlockEnd.gif }

2、  浮雕。

 
          
None.gif private void RenderRelievoText(Graphics g, PointF point)
ExpandedBlockStart.gifContractedBlock.gif
... {
InBlock.gif
using (Brush brush = new SolidBrush(_borderColor))
ExpandedSubBlockStart.gifContractedSubBlock.gif
...{
InBlock.gif
for (int i = 1; i <= _borderSize; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
...{
InBlock.gif g.DrawString(
InBlock.gif
base.Text,
InBlock.gif
base.Font,
InBlock.gif brush,
InBlock.gif point.X
+ i,
InBlock.gif point.Y);
InBlock.gif g.DrawString(
InBlock.gif
base.Text,
InBlock.gif
base.Font,
InBlock.gif brush,
InBlock.gif point.X,
InBlock.gif point.Y
+ i);
ExpandedSubBlockEnd.gif }

ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gif
using (Brush brush = new SolidBrush(base.ForeColor))
ExpandedSubBlockStart.gifContractedSubBlock.gif
...{
InBlock.gif g.DrawString(
InBlock.gif
base.Text, base.Font, brush, point);
ExpandedSubBlockEnd.gif }

ExpandedBlockEnd.gif }

3、  印版。

 
          
None.gif private void RenderFormeText(Graphics g, PointF point)
ExpandedBlockStart.gifContractedBlock.gif
... {
InBlock.gif
using (Brush brush = new SolidBrush(_borderColor))
ExpandedSubBlockStart.gifContractedSubBlock.gif
...{
InBlock.gif
for (int i = 1; i <= _borderSize; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
...{
InBlock.gif g.DrawString(
InBlock.gif
base.Text,
InBlock.gif
base.Font,
InBlock.gif brush,
InBlock.gif point.X
- i,
InBlock.gif point.Y
+ i);
ExpandedSubBlockEnd.gif }

ExpandedSubBlockEnd.gif }

InBlock.gif
InBlock.gif
using (Brush brush = new SolidBrush(base.ForeColor))
ExpandedSubBlockStart.gifContractedSubBlock.gif
...{
InBlock.gif g.DrawString(
InBlock.gif
base.Text, base.Font, brush, point);
ExpandedSubBlockEnd.gif }

ExpandedBlockEnd.gif }

声明:

本文版权归作者和CS 程序员之窗所有,欢迎转载,转载必须保留以下版权信息,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

作者:Starts_2000

出处:CS 程序员之窗 http://www.csharpwin.com

你可以免费使用或修改提供的源代码,但请保留源代码中的版权信息,详情请查看:

CS 程序员之窗开源协议 http://www.csharpwin.com/csol.html

转载于:https://www.cnblogs.com/AsionTang/archive/2010/05/22/1741488.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值