Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Построение класса приложения
В любом приложении WPF нужно будет определить класс, расширяющий
ApplicationMain()StartupExit<b>// Определить глобальный объект приложения для этой программы WPF.</b>class MyApp : Application{ [STAThread] static void Main(string[] args) {<b> // Создать объект приложения.</b> MyApp app = new MyApp();<b> // Зарегистрировать события Startup/Exit.</b> app.Startup += (s, e) => { /* Запуск приложения */ }; app.Exit += (s, e) => { /* Завершение приложения */ }; }}В обработчике события
StartupExitНа заметку! Метод
Main()[STAThread]Main()Main()Main()Перечисление элементов коллекции Windows
Еще одним интересным свойством класса
ApplicationWindowsWindowApplication.Windowsstatic void MinimizeAllWindows(){ foreach (Window wnd in Application.Current.Windows) { wnd.WindowState = WindowState.Minimized; }}Вскоре будет построено несколько приложений WPF, а пока давайте выясним основную функциональность типа Window и изучим несколько важных базовых классов WPF.
Роль класса Window
Класс
System.Windows.WindowPresentationFramework.dllApplicationWindowНа рис. 24.1 показана цепочка наследования (и реализуемые интерфейсы) для класса
System.Windows.Window
По мере чтения этой и последующих глав вы начнете понимать функциональность, предлагаемую многими базовыми классами WPF. Далее представлен краткий обзор функциональности каждого базового класса (полные сведения ищите в документации по .NET 5).
Роль класса System.Windows.Controls.ContentControl
Непосредственным родительским классом
WindowContentControlContentControlContentContentControlНапример, когда речь идет о типичном "кнопочном" элементе управления, то обычно предполагается, что его содержимым будет простой строковый литерал (ОК, Cancel, Abort и т.д.). Если для описания элемента управления WPF применяется XAML, а значение, которое необходимо присвоить свойству
ContentContent<b><! -- Установка значения Content в открывающем элементе --></b><Button Height="80" Width="100" Content="OK"/>На заметку! Свойство
ContentОднако содержимое может быть практически любым. Например, пусть нужна "кнопка", которая содержит в себе что-то более интересное, нежели простую строку — возможно специальную графику или текстовый фрагмент. В других инфраструктурах для построения пользовательских интерфейсов, таких как Windows Forms, потребовалось бы создать специальный элемент управления, что могло повлечь за собой написание значительного объема кода и сопровождение полностью нового класса. Благодаря модели содержимого WPF необходимость в этом отпадает.