Элемент управления NotifyIcon отображает значок в области уведомлений (SystemTray) панели задач, соответствующий приложению, выполняемому в фоновом режиме.
рис.3
Создайте проект SystemTray. Перетащите на форму из окна ToolBox элементы управления ContextMenu и NotifyIcon. Добавьте в контекстное меню пункты "Показать" (имя пункта – menuShow) и "Скрыть" (имя пункта – menuHide).
Установите следующие свойства элемента notifyIcon1:
| свойство | Значение |
| СontextMenu | contextMenu1 |
| Icon | Icon\ eventlogWarn.ico
|
| Text | Задача SystemTray |
В результате будет сгенерирован следующий код:
private System.Windows.Forms.NotifyIcon notifyIcon1;
notifyIcon1.ContextMenu = contextMenu1;
notifyIcon1.Icon =
((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
notifyIcon1.Text = "Задача SystemTray ";
notifyIcon1.Visible = true;
notifyIcon1.DoubleClick += new EventHandler(menuShow_Click);
Изображение, используемое в качестве иконки (свойство Icon) элемента notifyIcon1, будет выводиться в область уведомлений.
Значение свойства Text представляет собой текст всплывающей подсказки, появляющейся при наведении курсора на иконку приложения.

рис.4
В конструкторе формы свойству ShowInTaskbar присваиваем значение false для удаления с панели задач иконки нашего приложения:
public class Form1 : Form
{
InitializeComponent();
// скрываем видимость приложения на панели задач
this.ShowInTaskbar = false;
}
Добавляем обработчик пункта меню menuShow:
private void menuShow_Click (object sender, System.EventArgs e)
{
// Отобраем приложение на панели задач при запуске
this.ShowInTaskbar = true;
//Показываем форму
this.Show();
//Отключаем доступность пункта меню menuShow
menuShow.Enabled = false;
//Включаем доступность пункта меню menuHide
menuHide.Enabled = true;
}
Обработчик пункта меню menuHide изменяет эти значения на обратные:
private void menuHide_Click (object sender, System.EventArgs e)
{
this.ShowInTaskbar = false;
this.Hide();
menuShow.Enabled = true;
menuHide.Enabled = false;
}
В режиме дизайна в окне Properties элемента управления notifyIcon1 переключаемся на события и в поле DoubleClick выбираем из списка обработчик menuShow_Click.
Примечание.
Можно было создать свой обработчик для события DoubleClick, а из него вызвать menuShow_Click():
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
menuShow_Click (this, new EventArgs());
}
В результате обработчиком события notifyIcon1_DoubleClick будет обработчик menuShow_Click.
Запускаем приложение.
В области уведомлений появляется иконка, связанная с notifyIcon1.
Пункты контекстного меню отображают и удаляют иконку приложения с панели задач.
Так как контекстное меню было установлено для ЭУ notifyIcon1, то двойной щелчок мышки на иконке в области уведомлений выводит пункты "Показать" и "Скрыть":
рис.5
Эти пункты отображают и удаляют иконку приложения с панели задач. При этом окно приложения по пункту "Показать" отображается на экране только в том случае, если перед этим оно не было свернуто на панель задач.
ВВЕДЕНИЕ В ГРАФИКУ
1. Интерфейсы GDI и GDI+
GDI – интерфейс графических устройств. Входит в состав Windows. Обеспечивает независимость Windows от графических устройств.
GDI+ - объектно-ориентированная подсистема. Состоит из набора базовых классов .NET и опирается на GDI.
Реализована в пространстве имен
System.Drawing.

рис.2
Контекст устройства (DC) и контекст отображения (Graphics).

рис.3
Система координат по умолчанию (в пикселях)

рис.4
Класс Graphics шире DC. Класс реализует и свойства, и инструменты для рисования в контексте DC.
Пример метода рисования прямоугольника:
g.FillRectangle (Brush, Х, У, width, height);
здесь g - объект класса Graphics - контекст отображения.
Перья
Перья используются для рисования линий и простейших геометрических фигур и создаются как объекты класса Pen. Вот соответствующие конструкторы:
public Pen (Color);
public Pen (Color, float); // Цвет + толщина
public Pen (Brush); // На основе кисти
public Pen (Brush, float);
public Pen (Color.FromArgb(255,155,100) ); // Оранжевое
После того как перо создано, программа может использовать его атрибуты при помощи свойств класса Pen. Некоторые из этих свойств перечислены в табл.
Свойства пера
| Свойство | Описание |
| Alignment | Выравнивание пера |
| Width | Ширина линии |
| Brush | Кисть, используемая пером |
| Color | Цвет пера |
| DashStyle | Стиль пунктирных и штрихпунктирных линий |
| DashCup | Вид точек и штрихов пунктирных и штрихпунктирных линий |
| DashOffset | Расстояние от начала линии до начала штриха |
| DashPattern | Массив шаблонов для создания произвольных штрихов и пробелов штриховых и штрихпунктирных линий |
| StartCup EndCup | Стиль концов линий |
| LineCap | Формы концов линий |
| LineJoin | Стиль соединения концов двух различных линий |
| MiterLimit | Предельная толщина в области соединения остроконечных линий |
Пример: Color color;
color = Color.Black
pen = new Pen(color, 2);
color = Color.White
pen = new Pen(color, 4);
Кисти
Внутренняя область окна и замкнутых геометрических фигур может быть закрашена при помощи кисти. Кисти создаются на базе классов, производных от абстрактного класса Brush. Это следующие классы:
· Brushes;
· SolidBrush;
· HatchBrush;
· TextureBrush;
· LinearGradientBrush;
· PathGradientBrush.
Кисть стандартного цвета.
Brush brB = Brushes.Blue;
Brush brR = Brushes.Red;
Кисть для сплошной закраски:
Brush solidBaige = new SolidBrush(Color.Baige);
Brush solidOrangy = new SolidBrush(Color.FromArgb(255,155,100) ); // Оранжевая
Кисти типа HatchBrush - прямоугольная кисть
заданного стиля с заданным цветом изображения и фона.
Кисти типа TextureBrush – текстурная кисть,
может иметь любой внешний вид и любой цвет.
Градиентные кисти - обеспечивают плавное изменение интенсивности цвета.
Члены класса Brushes.
Все перечисленные в таблице открытые свойства возвращают объект Brush, определенный системой
AliceBlue
| GhostWhite
| NavajoWhite
|
AntiqueWhite
| Gold
| Navy
|
Aqua
| Goldenrod
| OldLace
|
Aquamarine
| Gray
| Olive
|
Azure
| Green
| OliveDrab
|
Beige
| GreenYellow
| Orange
|
Bisque
| Honeydew
| OrangeRed
|
Black
| HotPink
| Orchid
|
BlanchedAlmond
| IndianRed
| PaleGoldenrod
|
Blue
| Indigo
| PaleGreen
|
BlueViolet
| Ivory
| PaleTurquoise
|
Brown
| Khaki
| PaleVioletRed
|
BurlyWood
| Lavender
| PapayaWhip
|
CadetBlue
| LavenderBlush
| PeachPuff
|
Chartreuse
| LawnGreen
| Peru
|
Chocolate
| LemonChiffon
| Pink
|
Coral
| LightBlue
| Plum
|
CornflowerBlue
| LightCoral
| PowderBlue
|
Cornsilk
| LightCyan
| Purple
|
Crimson
| LightGoldenrodYellow
| Red
|
Cyan
| LightGray
| RosyBrown
|
DarkBlue
| LightGreen
| RoyalBlue
|
DarkCyan
| LightPink
| SaddleBrown
|
DarkGoldenrod
| LightSalmon
| Salmon
|
DarkGray
| LightSeaGreen
| SandyBrown
|
DarkGreen
| LightSkyBlue
| SeaGreen
|
DarkKhaki
| LightSlateGray
| SeaShell
|
DarkMagenta
| LightSteelBlue
| Sienna
|
DarkOliveGreen
| LightYellow
| Silver
|
DarkOrange
| Lime
| SkyBlue
|
DarkOrchid
| LimeGreen
| SlateBlue
|
DarkRed
| Linen
| SlateGray
|
DarkSalmon
| Magenta
| Snow
|
DarkSeaGreen
| Maroon
| SpringGreen
|
DarkSlateBlue
| MediumAquamarine
| SteelBlue
|
DarkSlateGray
| MediumBlue
| Tan
|
DarkTurquoise
| MediumOrchid
| Teal
|
DarkViolet
| MediumPurple
| Thistle
|
DeepPink
| MediumSeaGreen
| Tomato
|
DeepSkyBlue
| MediumSlateBlue
| Transparent
|
DimGray
| MediumSpringGreen
| Turquoise
|
DodgerBlue
| MediumTurquoise
| Violet
|
Firebrick
| MediumVioletRed
| Wheat
|
FloralWhite
| MidnightBlue
| White
|
ForestGreen
| MintCream
| WhiteSmoke
|
Fuchsia
| MistyRose
| Yellow
|
Gainsboro
| Moccasin
| YellowGreen
|
Дата: 2019-02-02, просмотров: 355.