Application3
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace WindowsFormsApplication1
{
public partial class UserControl1 : UserControl
{
private Color mForeColorTwo;
// Это реализация свойства.
public Color ForeColorTwo
{
get { return mForeColorTwo; }
set { mForeColorTwo = value; }
}
private float mAngle;
public float Angle
{
get { return mAngle; }
set
{
// Такая схема устанавливает минимальное значение при попытке
// ввести слишком большее значение и наоборот. Это обеспечивает
// непрерывное приращение значения свойства,
if (value > 360) mAngle = 0;
else
{
if (value < 0) mAngle = 360;
else mAngle = value;
}
}
}
public UserControl1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// Создать представляющий элемент управления прямоугольник, заданный
// точкой верхнего левого угла и свойством Size.
Rectangle ControlRectangle = new Rectangle(new Point(0, 0),
this.Size);
// Создать новый объект LinearGradientBrush, определяющий переход
// между цветами ForeColor и ForeColorTwo с учетом заданного угла.
LinearGradientBrush myBrush = new LinearGradientBrush
(ControlRectangle, ForeColor,ForeColorTwo, Angle);
// Создать объект GraphicsPath, хранящий отображаемый текст.
GraphicsPath myPath = new GraphicsPath();
// Записать в объект GrapnicsPath строку, представляющую текущее
время.
myPath.AddString(System.DateTime.Now.ToLongTimeString(),
Font.FontFamily, (int)Font.Style, 25, new PointF(5, 5),
StringFormat.GenericDefault);
//myPath.AddString(System.DateTime.Now.ToLongTimeString(),
Font.FontFamily,(int)Font.Style, Font.Size, new PointF(5, 5),
StringFormat.GenericDefault);
// Показать Graphics,
e.Graphics.FillPath(myBrush, myPath);
// Создать из объекта myBrush перо толщиной 8 пикселов
Pen myPen = new Pen(myBrush, 8);
// и нарисовать им прямоугольник, совпадающий с областью элемента
управления.
e.Graphics.DrawRectangle(myPen, ControlRectangle);
}
}
}
Внешний вид окна созданного приложения