Урок 12. Окно нестандартной формы

Сделать окно нестандартной формы на C# или другом.NET'овском языке достаточно просто.

Схема действий тут такая - мы должжны создать регион (экземпляр класса Region) и присвоить его одноименному свойству формы. Создать регион можно разными способами - например, через объект GraphicsPath: к экземпляру GraphicsPath мы прибавим несколько фигур, которые будут задавать границу нашего GraphicsPath.

Вот пример кода:

private void Form1_Load(object sender, System.EventArgs e)

{

// Создаем объект GraphicsPath.

GraphicsPath gp= new GraphicsPath();

// Прибавляем два круга.

gp.AddEllipse(0, 0, 100, 100);

gp.AddEllipse(110, 0, 100, 100);

// Создаем регион на основе экземпляра GraphicsPath.

Region r = new Region(gp);

// Присваиваем созданный регион

// региону нашего окна.

this.Region = r;

}

После запуска программы она будет выглядеть так:

Урок 13. Получаем список всех установленных шрифтов

Для получения списка всех установленных в системе шрифтов служит класс InstalledFontCollection из пространства имен System.Drawing.Text.

Создайте Windows приложение, разместите на форме список (ListBox) и метку (Label). В списке мы и покажем список всех установленных на данном компьютере шрифтов. Метка будет работать как образец выбранного шрифта - при выборе имени шрифта в списке изменится шрифт у метки, так что все будет достаточно наглядно.

Измените для label1 свойства AutoSize в true - тогда наши шрифты будут лучше видны (если этого не сделать то возможно обрезание части текста). Также увеличьте размер списка - а то выбирать шрифты будет не слишко удобно.

Приступаем к коду. Во-первых, добавьте для формы переменную типа InstalledFontCollection:

...

System.Drawing.Text.InstalledFontCollection fontList =

new System.Drawing.Text.InstalledFontCollection();

...

Тут мы не только объявляем переменную, но и сразу записываем в нее все установленные в системе шрифты.

Теперь добавляем обработчик для зарузки формы:

private void Form1_Load(object sender, System.EventArgs e)

{

// Заполняем список названиями всех шрифтов.

foreach (FontFamily ff in fontList.Families)

{

listBox1.Items.Add(ff.Name);

}

}

И, наконец, пишем к од, который будет выполняться, если выбрать сответствующий шрифт в нашем списке:

private void listBox1_SelectedIndexChanged(object sender,

System.EventArgs e)

{

label1.Font = new Font(listBox1.Text, 20);

}

Все! Запускаем программу. Она будет выглядеть приблизительно так:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: