Съдържание* Въведение1 КонзолатаВерсията на C#
Анатомия на една програма
Пространства от имена в C#
Входно/изходна конзола
Типове данни в C#
Изрази и оператори
Условия и итерации
Преходът към обекти
Програмиране на C#
Статични методи
Обработка на изключения
Генериране на изключения
Получаване и задаване на свойства
Конструктори
Инстанции и наследяване
По-обща картина
Конвенции за именуване
Отвъд конзолата
2 Windows FormsПрозорецът за съобщения
Фòрмата
Визуализиране на фòрмата
Това е приложение и ние искаме да го стартираме
Вариации на тема
Свойства на фòрмата
Управляван от събития вход
Обработка на събитието Paint
Визуализиране на текст
Събитието Paint е специално!
Множество форми, множество манипулатори на събития
Наследяване на форми
Методът OnPaint
Тук ли е мястото на Main?
Събития и “On” методи
3 Важни структуриКласове и структури
Двумерни координатни точки
Масиви от точки
Структурата Size
Версии с Float
Правоъгълникът е точка и размер
Свойства и методи на Rectangle
Добре оразмерена форма
Фòрмата и клиента
Преобразувания с Point
Структурата Color
Имената на 141 цвята
Писалки и четки
Системни цветове
Известните цветове
Какво да използвате?
Получаване на усет за пречертавания
Центриране на Hello World
Измерване на низове
Текст в правоъгълник
4 Упражнение по извеждане на текстИнформация за системата
Задаване на междуредие на текст
Стойности на свойства
Форматиране в колони
Всичко е обект
Списък с информация за системата
Форми и ленти за скролиране на Windows
Скролиране на контрол Panel
Наследството на ScrollableControl
Превъртане без контроли
Действителни числа
Да бъде просто
Скорост на охлюв
Разсъждения за бъдещето
5 Линии, криви и запълнени областиКак да получим Graphics обект
Писалките, накратко
Прави линии
Въведение в отпечатването
Свойства и състояние
Изглаждане (Anti-Aliasing)
Множество свързани линии
Криви и параметрични уравнения
Вездесъщият правоъгълник
Обобщени многоъгълници
По-лесни елипси
Запълване на правоъгълници, елипси и сектори
Грешка с 1 пиксел
Полигони и режим на запълване
6 Въвеждане от клавиатуратаИгнориране на клавиатурата
Кой е на фокус?
Клавиши и знакове
Натискане и отпускане на клавиши
Изброяването Keys
Тестване на модифициращите клавиши
Проверка на реалността
Клавиатурен интерфейс за SysInfo
KeyPress за знакове
Контролни знакове
Разглеждане на клавишите
Извикване на Win32 API
Обработка на входа от чуждестранни клавиатури
Входен фокус
Липсващият текстов курсор
Повтаряне (Echo) на клавишни знакове
Проблеми отдясно наляво
7 Страници и трансформацииНезависимост от устройството с помощта на текст
Колко струва това в пари?
Точки на инч
Какво можем да кажем за принтера?
Ръчни преобразувания
Мерни единици и мащабиране на страница
Ширини на писалка
Трансформации на страници
Записване на състоянието на Graphics
Метрични размери
Условни координати
Какво не можете да правите
Трансформация World
Цялата картина
Линейни трансформации
Въведение в матриците
Класът Matrix
Изкривяване
Комбиниране на трансформации
8 Укротяване на мишкатаТъмната страна на мишката
Игнориране на мишката
Няколко бързи дефиниции
Информация за мишката
Колелцето на мишката
Четирите основни събития на мишката
Работа с колелцето
Движение на мишката
Проследяване и прихващане на мишката
Приключения в проследяването
Обобщаване на код с интерфейси
Щраквания и двукратни щраквания
Свойства, свързани с мишката
Влизане, излизане, кръжене
Курсорът на мишката
Упражнение по проверка на посочване
Добавяне на интерфейс с клавиатура
Помощ от наследниците
Проверка за посочване в текст
Рисуване с мишката
9 Текст и шрифтовеШрифтове под Windows
Да поговорим за шрифта
Височини и междуредие на шрифтове
Подразбиращи се шрифтове
Вариант на шрифт
Създаване на шрифтове по име
Размер в пунктове
Сблъсъкът на мерните единици
Свойства и методи на Font
Нови шрифтове от FontFamily
Метрика на дизайна
Масиви от фамилии шрифтове
Колекции от шрифтове
Варианти на DrawString
Изглаждане на текст
Измерване на низ
Опции на StringFormat
Нагаждане по мрежа и поместване на текст
Хоризонтално и вертикално подравняване
Визуализиране на клавиш за бърз достъп
Ограничаване и отрязване
Табулации
10 Таймер и времеКласът Timer
Структурата DateTime
Локално време и универсално време
Броене на тактове
Календарите по света
Четивно извеждане
Прост, специфичен за културата часовник
Външен вид “ретро”
Аналогов часовник
Малък пъзел, наречен Jeu de Taquin
11 Изображения и битмапиОбщ преглед на поддръжката на битмапи
Битмап файлови формати
Зареждане и изобразяване
Информация за изображение
Рендериране на изображението
Побиране в правоъгълник
Ротиране и изрязване
Визуализиране на част от изображението
Чертане върху изображение
Още за класа Image
Класът Bitmap
Hello World с битмап
Битмапът-сянка
Двоични ресурси
Конструктори на Cursor (извадка)
Конструктори на Bitmap (извадка)
Анимация
Списък от изображения
Класът Picture Box
12 Бутони, етикети и скролиранеБутони и щраквания
Клавиатура и мишка
Проблеми на контролите
По-задълбочено разглеждане на бутоните
Външен вид и подравняване
Бутони с битмапи
Множество манипулатори или един?
Изобразяване на собствени бутони
Пускане на котва
Скачване
Децата на фòрмата
Z-ред
Полето за отметка
Алтернативата с три състояния
Етикетът
Табулации и ред на обхождане с клавиш Tab
Идентифициране на контроли
Възможността Auto-Scale
Шестнадесетичен калкулатор
Радиобутони и групи
Ленти за скролиране
Алтернативата с лента за следене (Track Bar)
13 Криви на Безие и други сплайниСплайнът на Безие в практиката
По-стилов часовник
Колинеарни криви на Безие
Окръжности и дъги с Безие
Изкуство с Безие
Математическият апарат
Каноничният сплайн
Извеждане на математически зависимости за канонична крива
14 МенютаМеню и меню-елементи
Клавишни комбинации за бърз достъп до менюта
Вашето първо меню
Нетрадиционни менюта
Свойства и събития на MenuItem
Отбелязване на елементи
Работа с контекстни менюта
Колекцията от меню-елементи
Стандартното меню (предложение)
Възможността за собствено изобразяване
15 Пътища, региони и ограничаванеПроблем и негово решение
Пътят – по-системно
Създаване на път
Рендериране на път
Трансформации на път
Други модификации на път
Ограничаване с пътища
Ограничаване на битмапи
Области и ограничаване
Конструктори на Region (извадка)
16 Диалогови прозорциВашият първи модален диалогов прозорец
Прекратяване на модален диалогов прозорец
Приемане и отказване
Местоположение на екрана
Прозорецът About
Дефиниране на свойства в диалогови прозорци
Имплементиране на бутон Apply
Немодалният диалогов прозорец
Стандартни диалогови прозорци
Избиране на шрифтове и цветове
Използване на Регистъра на Windows
Диалоговият прозорец Open File
Диалоговият прозорец Save File
17 Четки и писалкиЗапълване с плътни цветове
Четки с шарки
Начална точка на рендериране
Текстурни четки
Четки с линейни градиенти
Четки с пътища на градация
Повтаряне на четката
И писалките могат да бъдат четки
Малко повече стил
Краища и съединения
18 Редактиране, работа със списъци и превъртане на стойностиЕдноредови текстови полета
Многоредови текстови полета
Клониране на Notepad
Клонинг на Notepad с файлов вход/изход
Продължение на клонинга на Notepad
Текстови полета за специални цели
RichTextBox
Подсказващи текстове
Списъчното поле
Списъчно поле + текстово поле = комбинирано поле
Контроли за превъртане на стойности
19 Забавление с шрифтовеДа започнем
Текст, изобразен с четка
Трансформации на шрифт
Текст и пътища
Нелинейни трансформации
20 Ленти с инструменти и ленти за състояниеОсновната лента за състояние
Лентата за състояние и автоматичното скролиране
Панели на лента за състояние
Помощ за меню
Основната лента с инструменти
Варианти на ленти с инструменти
Събития на лента с инструменти
Стилове ленти с инструменти
21 ОтпечатванеПринтери и техните настройки
Настройки на страница
Дефиниране на документ
Обработка на събития на PrintDocument
Размерите на страница
Класът Print Controller
Използване на стандартния диалогов прозорец Print
Настройка на страницата
Предпечатен изглед
22 Дървовиден изглед и списъчен изгледВ страната на сплитерите
Дървовидни изгледи и възли
Изображения в дървовиден изглед
Събития на дървовиден изглед
Навигация на възлите
Дърво на директориите
Визуализиране на изображения
Основи на списъчните изгледи
Събития в списъчен изглед
23 МетафайловеЗареждане и рендериране на съществуващи метафайлове
Размери и рендериране на метафайлове
Конвертиране на метафайлове в битмапи
Създаване на нови метафайлове
Ограничителен правоъгълник на метафайл
Метафайлове и трансформация на страницата
Тип на метафайла
Изброяване на метафайл
24 Клипборд, издърпване и пусканеЕлементи и формати
Миниатюрният (но мощен) клас Clipboard
Извличане на обекти от клипборда
Формати на данните в клипборда
Програми за преглед на клипборда
Задаване на множество формати на клипборда
Издърпване и пускане
A Файлове и потоциНай-важният клас за файлов вход/изход
Свойства и методи на FileStream
Проблемът с FileStream
Други класове за потоци
Четене и запис на текст
Двоичен файлов вход/изход
Класът Environment
Парсване на имена на файлове и пътища
Паралелни класове
Работа с директории
Обработка и информация за файлове
B Класът MathЧислови типове
Проверка за целочислено препълване
Типът Decimal
Infinity и NaN при плаваща запетая
Класът Math
Остатък при плаваща запетая
Степени и логаритми
Тригонометрични функции
С Теория на низоветеТипът char
Конструктори и свойства на String
Копиране на низове
Конвертиране на низове
Конкатениране на низове
Сравняване на низове
Търсене на низ
Отрязване и допълване
Обработка на низове
Форматиране на низове
Масиви – търсене и сортиране
Класът StringBuilder