现在的位置: 首页 > 综合 > 正文

阴影字

2013年02月09日 ⁄ 综合 ⁄ 共 2918字 ⁄ 字号 评论关闭
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);
        }

    }

}

 

抱歉!评论已关闭.