Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Джей Глинн -

C# - Графика

Все примеры / Мультимедиа / Графика

Clipping

Автор: Джей Глинн | добавлено: 10.01.2011, 18:29 | просмотров: 1441 (2+) | комментариев: 0 | рейтинг: *x1
Еще один наглядный пример использования клиппинга. Пример выводит на форму слово Kbyte.Ru с тенью.

Код

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

using System.Drawing.Drawing2D;

/// <summary>
/// Summary description for Clipping.
/// </summary>
public class Clipping : System.Windows.Forms.Form
{
  /// <summary>
  /// Required designer variable.
  /// </summary>
  private System.ComponentModel.Container components = null;
  GraphicsPath gP;
  public Clipping()
  {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent();
    this.Text = "Transform and Clip";

    //
    // TODO: Add any constructor code after InitializeComponent call
    //
  }

  /// <summary>
  /// Clean up any resources being used.
  /// </summary>
  protected override void Dispose(bool disposing)
  {
    if (disposing)
    {
      if (components != null)
      {
        components.Dispose();
      }
    }
    base.Dispose(disposing);
  }

  #region Windows Form Designer generated code
  /// <summary>
  /// Required method for Designer support - do not modify
  /// the contents of this method with the code editor.
  /// </summary>
  private void InitializeComponent()
  {
    // 
    // Clipping
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(500, 149);
    this.Name = "Clipping";
    this.Text = "Clipping";

  }
  #endregion

  /// <summary>
  /// The main entry point for the application.
  /// </summary>
  [STAThread]
  static void Main()
  {
    Application.Run(new Clipping());
  }
  protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
  {
    Graphics g = e.Graphics;
    DrawPathTransform(g);
    //DrawClip(g);
    g.Dispose();
  }
  void AddStringToPath(string s)
  {
    int fSt = (int)FontStyle.Regular;
    Point xy = new Point(50, 10);
    FontFamily fF = new FontFamily("Times new roman");
    StringFormat sFr = StringFormat.GenericDefault;

    gP.AddString(s, fF, fSt, 100, xy, sFr);  // add the string to the path
  }
  void DrawPathTransform(Graphics g)
  {
    gP = new GraphicsPath();  // create a new path
    AddStringToPath("Kbyte.Ru");

    g.FillPath(Brushes.Gray, gP);  // draw the path to the surface
    Matrix m = new Matrix();
    m.Translate(5, 5);
    gP.Transform(m);
    g.FillPath(Brushes.Yellow, gP);  // draw the path to the surface
    g.DrawPath(Pens.Red, gP);  // draw the path to the surface
  }
  void DrawClip(Graphics g)
  {
    gP = new GraphicsPath();  // create a new path
    AddStringToPath("Kbyte.Ru");

    g.SetClip(gP);
    g.TranslateClip(-5, -5);

    RectangleF rc = gP.GetBounds();
    rc.Offset(-5, -5);
    g.FillRectangle(Brushes.Gray, rc);  // results in gray C#

    g.ResetClip();
    g.FillPath(Brushes.Yellow, gP);  // draw the path to the surface
    g.DrawPath(Pens.Red, gP);  // draw the path to the surface
  }
}
Файлы Clipping.zip (23,91 Кб)
Об авторе

Джей Глинн

Нет информации об авторе...
Джей Глинн
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики