- •Атрибуты в среде .Net и языке c#.
- •Метаданные
- •Понятие атрибутов
- •Предопределенные и собственные атрибуты
- •Потребители атрибутов
- •Применение атрибутов
- •Сокращенное именование атрибутов
- •Создание собственных атрибутов:
- •Применение собственных атрибутов:
- •Ограничение использования атрибутов:
- •Атрибуты уровня сборки и модуля:
- •Рефлексия атрибутов:
- •Выводы:
- •Язык xml. Классы платформы .Net для работы с xml-данными.
- •Синтаксис xml
- •Работа с xml при помощи System.Xml
- •Работа с xml при помощи linq to xml
- •Выводы:
- •Потоковый ввод-вывод. Файлы. Работа с файлами и каталогами. Пространство имен System.Io
- •Классы Directory (DirectoryInfo) и File (FileInfo) Некоторые общие свойства классов DirectoryInfo и FileInfo:
- •Дополнительные возможности класса DirectoryInfo
- •Дополнительные возможности класса FileInfo
- •Дополнительные члены File
- •Потоковый ввод-вывод
- •Работа с классом FileStream
- •Работа с классами StreamWriter и StreamReader
- •Классы StringWriter и StringReader
- •Работа с классами BinaryWriter и BinaryReader
- •Выводы:
- •Сериализация. Атрибуты. Стандартные форматы сериализации. Понятие сериализации объектов
- •Роль графов объектов
- •Конфигурирование объектов для сериализации
- •Общедоступные поля, приватные поля и общедоступные свойства
- •Стандартные форматеры сериализации
- •Настройка сериализации с использованием атрибутов
- •Выводы:
- •Понятие бд и субд. Язык sql. Ado.Net как средство доступа из c# к субд. Понятие бд
- •Понятие субд
- •Обзор синтаксиса
- •Подключенный уровень
- •Автономный уровень
- •Основные свойства класса DataSet
- •Основные методы класса DataSet
- •Типы DataColumn и DataRow
- •Основные члены типа DataColumn:
- •Основные члены типа DataRow:
- •Работа с адаптерами данных:
- •Основные члены класса DbDataAdapter:
- •Параллельные вычисления. Многозадачность и многопоточность.
- •Некоторые члены класс Process:
- •Некоторые члены класса ProcessThread
- •Домены приложений
- •Некоторые члены класс AppDomain:
- •Многопоточность. Классификация состояний потока. Средства многопоточного программирования System.Threading.
- •Некоторые члены пространства имен System.Threading
- •Основные члены класс Thread
- •Состояния потока
- •Многопоточное программирование при помощи асинхронных вызовов делегатов
- •Создание вторичных потоков при помощи Thread.Start()
- •Синхронизация с помощью lock
- •Синхронизация с использованием типа System.Threading.Monitor
- •Синхронизация с использованием типа System.Threading.Interlocked
- •Синхронизация с использованием атрибута [Synchronization]
- •Использование System.Threading.Timer
- •Пул потоков clr
- •Библиотека Windows.Forms. Пространства имен. Структура приложения. Элементы управления. События. Иерархия элементов управления.
- •Основные пространства имен Windows Forms
- •Структура приложения WinForms
- •Элементы управления
- •События
- •Библиотека wpf. Отличия wpf от WindowsForms. Разметка xaml. Понятие Windows Presentation Foundation
- •Типы приложений wpf
- •Основные сборки wpf
- •Построение приложения wpf без xaml
- •Построение приложения wpf с использованием только xaml
- •Пример c# обработчика события для контрола, объявленного в xaml (связь кода и xaml):
- •Создание проекта
- •Знакомство с инструментами визуального конструктора wpf
Типы приложений wpf
Традиционные настольные приложения – обычные EXE, запускаемые на локальной машине.
WPF-приложения на основе навигации – настольные приложения, имитирующие работу веб-браузера, реализующую функциональность подобную навигации по набору страниц.
Приложения XBAP –приложения, загружаемые с веб-сервера и выполняющиеся в браузере (поддерживаются только IE и FireFox).
Основные сборки wpf
PresentationCore.dll |
Фундамент уровня графического интерфейса в WPF, в том числе поддержка интерфейса WPF Ink API (для перьевого ввода), несколько примитивов анимации, множество типов визуализации графики |
PresentationFoundation.dll |
|
System.Xaml.dll |
Расширенное взаимодействие с документами XAML. Предоставляет полный контроль над XAML во время выполнения |
WindowsBase.dll |
Эта сборка определяет основные типы, составляющие инфраструктуру API-интерфейса WPF. Здесь находятся типы потоков WPF, типы безопасности, различные преобразователи типов и прочие программные примитивы |
Построение приложения wpf без xaml
Учитывая всю функциональность, предлагаемую родительскими классами типа Window, представить окно в приложении можно, либо напрямую создав объект Window, либо указав этот класс в качестве родительского для строго типизированного наследника. В следующем примере рассматриваются оба подхода. Хотя большинство приложений WPF используют XAML, так поступать вовсе не обязательно. Все, что может быть выражено на XAML, также можно выразить в коде и (по большей части) наоборот. При желании можно построить полный проект WPF, используя лежащую в основе объектную модель и процедурный код.
using System;
using System.Windows;
using System.Windows.Controls;
namespace WpfAppAllCode
{
// Класс, представляющий главное окно приложения
class MainWindow : Window
{
public MainWindow(string windowTitle, int height, int width)
{
this.Title = windowTitle;
this.WindowStartupLocation = WindowStartupLocation.CenterScreen;
this.Height = height;
this.Width = width;
}
}
// Класс, представляющий программу
class Program : Application
{
[STAThread]
static void Main(string[] args)
{
Program app = new Program();
// Задание обработчиков событий Startup и Exit
app.Startup += AppStartUp;
app.Exit += AppExit;
app.Run(); // Запускает приложение
}
static void AppExit(object sender, ExitEventArgs e)
{
MessageBox.Show("App has exited");
}
static void AppStartUp(object sender, StartupEventArgs e)
{
// Создать объект Window и установить некоторые базовые свойства.
MainWindow mainWindow = new MainWindow("Simple WPF App!", 200, 300);
mainWindow.Show();
}
}
}
