阴影字

using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Text;
using  System.Windows.Forms;

namespace  testgrid
{
    
public partial class FontMenuForm : Form1
    
{
        
protected string strText = "Sample Text";
        
protected Font font = new Font("Times New Roman"24, FontStyle.Italic);
        
public FontMenuForm()
        
{
            Menu 
= new MainMenu();
            Menu.MenuItems.Add(
"&Font"new EventHandler(MenuFontOnClick));
            InitializeComponent();
        }

        
void MenuFontOnClick(object sender, EventArgs e)
        
{
            FontDialog dlg 
= new FontDialog();
            dlg.Font 
= font;
            
if (dlg.ShowDialog() == DialogResult.OK)
            
{
                font 
= dlg.Font;
                Invalidate();
            }

        }

        
protected override void DoPage(Graphics g, Color clr, int cx, int cy)
        
{
            
//base.DoPage(g, clr, cx, cy);
            SizeF sizef = g.MeasureString(strText, font);
            Brush brush 
= new SolidBrush(clr);
            g.DrawString(strText, font, brush, (cx 
- sizef.Width) / 2, (cy - sizef.Height) / 2);
        }

        
public float GetAscent(Graphics g, Font font)
        
{
            
return font.GetHeight(g) * font.FontFamily.GetCellAscent(font.Style) / font.FontFamily.GetLineSpacing(font.Style);
        }

        
public float GetDescent(Graphics g, Font font)
        
{
            
return font.GetHeight(g) * font.FontFamily.GetCellDescent(font.Style) / font.FontFamily.GetLineSpacing(font.Style);
        }

        
public float PointsToPageUnits(Graphics g, Font font)
        
{
            
float fFontSize;
            
if (g.PageUnit == GraphicsUnit.Display)
            
{
                fFontSize 
= 100 * font.SizeInPoints / 72;
            }

            
else
                fFontSize 
= g.DpiX * font.SizeInPoints / 72;
            
return
                fFontSize;
        }

    }

}
using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Text;
using  System.Windows.Forms;

namespace  testgrid
{
    
public partial class DropShadow : FontMenuForm
    
{
        
const int iOffset = 10;
        
public DropShadow()
        
{
            Text 
= "Drop Shadow";
            Width 
*= 2;
            strText 
= "Shadow";
            font
=new Font("Times New Roman",108);
            InitializeComponent();
        }

        
protected override void DoPage(Graphics g, Color clr, int cx, int cy)
        
{
            
//base.DoPage(g, clr, cx, cy);
            SizeF sizef = g.MeasureString(strText, font);
            
float x = (cx - sizef.Width) / 2;
            
float y = (cy - sizef.Height) / 2;
            g.Clear(Color.White);
            g.DrawString(strText, font, Brushes.Gray, x, y);
            g.DrawString(strText, font, Brushes.Black, x 
- iOffset, y - iOffset);
        }

    }

}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值