Сделать окно нестандартной формы на 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);
}
Все! Запускаем программу. Она будет выглядеть приблизительно так: