Как сделать иконку для приложения windows forms
Форма является основным компонентом графического интерфейса программы. Именно на ней размещаются управляющие интерфейсы.
Рассмотрим некоторые из свойств формы, которые влияют на её внешний вид.
Объявляем форму
Для того что бы объявить форму, нам надо добавить библиотеку System.Windows.Forms.dll
После объявляем форму $main_form
Отобразим форму $main_form.
В результате получилась вот такая форма:
Что бы в загаловке формы отобразить текст нужно присвоить его свойству Text нашей формы:
Текст отобразится в заголовке:
Изменение размера формы:
Давайте изменим размер формы.
Это можно сделать через свойства Width(ширина) и Height(высота) формы, где значения параметров это кол-во пикселей.
Этого же результата можно добиться используя параметр формы Size:
$main_form . Size = New-object System . Drawing . Size ( 300 , 500 )Так же можно задать размер с помощью параметра DesktopBounds:
$main_form . DesktopBounds = New-object System . Drawing . Rectangle ( 0 , 0 , 300 , 500 )Так же для изменения размеров можно воспользоваться свойством ClientSize
$main_form . ClientSize = New-object System . Drawing . Size ( 300 , 500 )Однако этот параметр задаёт клиентскую область формы, которая по размерам меньше самой формы. Поэтом получившаяся форма, по размерам окажется больше, чем в предыдущих примерах.
Однако данные свойства не ограничивают размер формы в период жизни программы, пользователь может изменить размер формы или распахнуть её на весь экран, что может существенно сказаться на внешнем виде формы. Поэтому иногда форму приходится ограничить возможность сжимать и/или растягивать форму.
Для этогу существуют такие параметры , как MinimumSize(минимальный размер формы) и MaximumSize (максимальный размер формы). Если задать эти параметры, то в период жизни форма не сможет за них выйти.
Пример объявления данных свойств:
Но вычислять область окна бывает довольно сложно, удобнее всего отдать эту задачу автоматическим средствам управления окнами.
Для этого с начала надо разрешить менять размер формы, в зависимости от расположения объектов в области видимости свойством AutoSize перевести его в значение true
После надо выбрать режим автоматического подбора размера формы и указать его в свойстве AutoSizeMode. Существует два режима этого свойства GrowOnly и GrowAndShrink:
$main_form . AutoSizeMode = [ System . Windows . Forms . AutoSizeMode ] : : GrowOnly $main_form . AutoSizeMode = [ System . Windows . Forms . AutoSizeMode ] : : GrowAndShrinkШрифты
Так же не малую роль в отображении формы влияют шрифты. К тому же настройки шрифтов наследуются на управляющие элементы принадлежащие этой форме.
Настройки шрифта хранятся в свойстве формы Font данное свойство наследуется другим упавляющим компонентам на форме. Изменять свойства Font по отдельности нельзя, но можно переопределить его польностью следующим образом:
$main_form . Font = New-Object System . Drawing . Font ( "Calibri" , 24 )Что бы поменять цвет шрифта существует следующее свойство ForeColor:
Не малуюроль в определении размеров управляющих элементов играет размер шрифта его можно узнать из свойства AutoScaleBaseSize, его так же можно перераспределить.
Шаблон окна
Шаблон окна формы опредиляется парметром FormBorderStyle, который может принимать семь значений Fixed3D, FixedDialog, FixedSingle, FixedToolWindow, None, Sizabl, SizableToolWindow по умолчанию стоит значение Sizable. Заметим, что внешний вид формы на примерах может существенно отличаться на разных компьютерах и существенно зависит от OC. Так же после назначения определённого шаблона окна в дальнейшем его можно будет редактировать другими свойствами формы.
Рассмотрим шаблоны формы:
$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : Fixed3DУправляющие кнопки
Для управления отображения управляющими кнопками используются следующие свойства ControlBox, MaximizeBox и MinimizeBox.
Свойство ControlBox управляет видимостью всей областью управляющих кнопок. По умолчанию она находиться в состоянии true.
Зададим данному свойству значение false
Если в форме свойству Text присвоить пустое значение, то шапка формы совсем исчезнет.
Вот так будет выглядеть форма:
Включим назад ControlBox и рассмотрим следующие свойства: MaximizeBox и MinimizeBox. Они тоже булевые и служат для того, что бы выключать кнопки развернуть окно и свернуть окно. По умолчанию они имеют свойство true. Рассмотрим как выглядит их выключение:
Однако, если выключить и MaximizeBox и MinimizeBox кнопки перестают быть видимыми:
Заметим так же, что отключение кнопок по одиночке или одновременно влияет не только на отображение этих кнопок и возможностями их использовать, но так же и на свойство формы. Так на форме с выключенным свойством MaximizeBox пользователю отключаются все стандартные возможности распахнуть форму на весь экран. Так же дела обстоят и с MinimizeBox.
Иконка.
Иконка отображаемая в левом верхнем углу формы, а так же отображаемая в панели задач может определить через свойство формы Icon например вот так:
$main_form . Icon = New-Object System . Drawing . Icon ( "d:\favicon.ico" )
Если же мы не хотим, что бы иконка отображалась, то её можно скрыть, с помощью свойства ShowIcon установив его в состояние false. Если же шаблон окна не подразумевает наличия иконки, её так же можно включить через это свойство установи параметр truе
Элемент захвата
Для того, чтобы задать видимость захвата для изменения размера, отображаемого в правом нижнем углу формы. Нужно воспользоваться свойством SizeGripStyle. Оно имеет 3 значенич Auto, Hide, Show
Данное значение стоит по умолчанию. Форма сама решает отображать этот элемент или нет.
Элемент будет скрыт с формы.
$main_form . SizeGripStyle = [ System . Windows . Forms . SizeGripStyle ] : : Hideэлемент отображается на форме
$main_form . SizeGripStyle = [ System . Windows . Forms . SizeGripStyle ] : : ShowЦвет и прозрачность.
Что бы задасть цвет формы нужно воспользоваться свойством BackColor, этот параметр будет наследоваться размещённым на данной форме управляющим элементам. Сделаем цвет рабочей области, например синим:
А в свойстве TransparencyKey формы мы должны указать, какой цвет будет заменяться на прозрачный.
Эти параметры прозрачности будут так же наследоваться на управляющие элементы формы.
Это свойство можно использовать для рисования не стандартных окон убрав перед этим рамку формы
$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : NoneЕсли же мы не хотим делать дырки в форме, а всеволишь сделать её слегка прозрачной, мы можем воспользоваться свойством Opacity, значения в ней колеблятся от 0 это полностью прозрачная до 1, не прозрачная.
Курсор
Для изменения вида курсора в приложении можно воспользоваться свойством формы Cursor:
$main_form . Cursor = New-Object System . Windows . Forms . Cursor ( "d:\Cursor.cur" )Так же можно узнать перехватывается ли курсор приложением в даннй момент, для этого нужно посмотреть данные свойства формы Capture
Что бы уведомить пользователя о текущем процессе, можно так же включить курсор ожидания указав в свойстве UseWaitCursor значение true
Состояние окна.
Что бы узнать в каком состоянии находиться окно или изменить его, можно воспользоваться свойством формы WindowState оно принимает три значения Maximized, Minimized, Normal.
Что бы развернуть окно:
$main_form . WindowState = [ System . Windows . Forms . FormWindowState ] : : MaximizedСвернуть в панель задач:
Перевести в обычный(свободный) режим:
$main_form . WindowState = [ System . Windows . Forms . FormWindowState ] : : NormalЗеркальный вид окна
Так же есть возможность показать зеркальную форму обычно это используют для приложений в которых ввод текста происходит с права на лево.
Для этого нам нужно сначала включить поддержку ввода текста с права на лево свойством формы RightToLeft
$main_form . RightToLeft = [ System . Windows . Forms . RightToLeft ] : : YESТолько после этого можно отобразить форму зеркально установив свойство формы RightToLeftLayout в значение true
Посмотреть отображается ли форма в зеркальном виде можно из свойства формы IsMirrored.
Отображение в Панели задач.
Видимость окна.
Так же если надо сделать, что бы форма не закрывалась другими окнами можно воспользоваться свойством TopMost. Если установить его в значение true то другие окна не смогут заслонить его.
Для формы существуют параметры видимости, но для отображения формы лучше пользоваться функция Enabled если установить его в значение false, то его не удасться отобразить методом ShowDialog().
Так же если надо скрыть форму, то это можно сделать изменив свойство Visible на false. Можно так же отобразить форму, но это может быть не всегда хорошей идеей, лучше пользоваться методом ShowDialog.
Комментарии:
Комментарии 12
Огромное спасибо за подробный разбор!
Очень сильно помогло в пониманиии концепции построения GUI для повершела =)
Приятно осознавать, что мой блог помогает людям. 🙂
Читайте также: