wpf приложения что это

Windows Presentation Foundation (WPF) представляет собой обширный API-интерфейс для создания настольных графических программ имеющих насыщенный дизайн и интерактивность. В отличие от устаревшей технологии Windows Forms, WPF включает новую модель построения пользовательских приложений (в основе WPF лежит мощная инфраструктура, основанная на DirectX).

Это означает возможность применения развитых графических эффектов, не платя за это производительностью, как это было в Windows Forms. Фактически даже становятся доступными такие расширенные средства, как поддержка видеофайлов и трехмерное содержимое. Используя эти средства (при наличии хорошего инструмента графического дизайна), можно создавать бросающиеся в глаза пользовательские интерфейсы и визуальные эффекты, которые были просто невозможны в Windows Forms.

В данном разделе описываются базовые понятия и возможности WPF, такие как XAML, базовая компоновка приложений, свойства зависимости (одна из ключевых концепций WPF) и рассматриваются примеры маршрутизируемых событий. Приводятся преимущества использования данной платформы, по сравнению с классическими приложениями Windows Forms.

Рассматривается использование привязки данных и затем дальнейшее их форматирование, описывается использование команд, ресурсов, стилей и поведений.

Описание построения базовых линий и фигур, использование трансформаций элементов, создание нестандартных текстур в виде пользовательских кистей, члены классов Geometry и Drawing. Так же приводятся основы эффектов и анимации.

В данном разделе описывается роль шаблона элемента управления по умолчанию и программное взаимодействие с ним во время выполнения. Так же рассказывается про построение пользовательских элементов управления с помощью Visual Studio 2010 и Expression Blend 4.

Построение потоковых и фиксированных документов, настройка печати, печать XPS, модель дополнений и развертывание приложений WPF, описание паттернов MVP, MVC и MVVM. Также приводится введение в разработку Metro-приложений под Windows 8 на C# и XAML.

Источник

WPF 4

Нововведения в WPF 4image loader

Я напишу отдельную статью, которая опишет важные изменения, которые грядут в WPF и Silverlight конструкторах в VS 2010.

Элементы управления

Элементы управления для построения богатых приложенийimage loader

WPF 4 добавляет разнообразные элементы управления, чтобы создавать бизнес-приложения еще быстрее и проще. Новый, богатый набор элементов управления включает такие LOB-необходимые элементы управления, как DataGrid, DatePicker и Calendar. Данные новые элементы управления на 99% поведенчески и API совместимые с их Silverlight аналогами, позволяя разработчику создавать совместимые веб- и клиентские приложения, оптимизируя технологический процесс благодаря повторному использованию Silverlight и WPF кода.

Мы также выпускаем набор из восьми элементов управления, называемый «WPF Bag O’ Tricks». Набор включает в себя: AnimatingTilePanel, ColorPicker, InfoTextBox, ListPager, NumericUpDown, Reveal, TransitionsPresenter, TreeMapPanel.

Windows 7 и элемент управления Office Ribbon

Новый WPF элемент управления Ribbon будет доступен, почти сразу, после релиза WPF 4. Он поддерживает все стандартные возможности, с которыми знаком конечный пользователь: закладки и группы, динамическое изменение размеров, панель быстрого доступа, меню приложения, закладками, зависящими от контекста, горячими клавишами и многое другое.

image loader

WPF версия Ribbon будет обладать полноценной расширяемостью для соответствия изменениям в руководстве в следующих релизах. Ограниченная CTP версия доступна уже сегодня.

Графика

Кэшированное построение приложений
image loader
Огромный выигрыш в производительности возможен с новой возможностью WPF4 — Cached Composition, которая позволяет приложениям кэшировать произвольные содержимое, включая «живые» и полностью интерактивные элементы управления, векторную геометрию, растровые изображения, хранящиеся в видео памяти и т.п. Поместив единожды элементы в кэш, он могут быть произвольно преобразованы, анимированы, управляемы, к ним можно применить Effects, без нужды перерисовывать закэшированные элементы.

Все это приводит к сбережени CPU и GPU от перерисовки содержимого и позволяет GPU перерисовывать напрямую из кэша. Кэш понимает «грязные» области, поэтому мигающй курсор в закэшированном текстовом блоке, например, должен будет перерисовать только курсор между фреймами. Появилась даже новая кисть, которая использует «умный» кэш, фактически это VisualBrush с улучшенной производительностью.

Поддержка третьих пиксельных шейдеров

WPF основан на поддержке популярного ShaderEffect, впервые представленного в WPF 3.5 SP1, который позволяет создавать эффекты, используя пиксельные шейдеры 3-ей версии. PS 3.0 более сложный, чем PS 2.0, что дает возможность создавать неотразимые эффекты на поддерживаемом оборудовании.

WPF 4 переняла свойство UseLayoutRounding, представленное в Silverlight 2. Движок макета зачастую рассчитывает подпиксельные координаты расположения. Это приводит к артефактам при прорисовке, когда элемент расположен на стыке подпиксельных границ и сглажен над несколькими физическими пикселями.

UseLayoutRounding заставит движок макета располагать элементы по всем границам пикселя, следовательно, убирая большинство артефактов прорисовки, вызванной данной проблемой, что позволяет создавать чистый и чёткий UI по умолчанию.

Функции для облегчения анимации
image loader
Дискретная, линейная и сплайновая анимация уже поддерживается предыдущими версиями WPF. WPF 4 представляет новый концепт «Easing Functions», которые позволяют разработчикам создавать различную анимацию. Например, пружинистые движения или добавить упреждение в анимацию. Функции упрощения (Easing Functions) определяют способ анимации от начала и до конца. Встроенные функции упрощения предоставляют спектр режимов в анимации: круговой, экспоненциальной, эластичной и пружинистой. Функции упрощения спроектированы легко расширяемыми, позволяя разработчикам создавать собственные. Благодаря данному нововведения, дизайнеры могут без усилий создавать плавную и органичную анимацию.

Новое добавленное свойство CleartypeHint позволяет разработчикам приложений включить высококачественную прорисовку Cleartype текста, когда во многих ситуациях он был заранее отключен. Такие ситуации включают в себя текст в наслоившихся окнах, текст в VisualBrush, DrawingBrush, BitmapCacheBrush и везде, где представление промежуточной прорисовки будет предыдущим результатом в черно-белом тексте.

Текстовый стек

Новый стек для прорисовки текста

WPF стек для прорисовки текста был полностью заменен, изменение, которое приводит к существенным усовершенствованиям в чёткости прорисовки текста, способности к изменению настроек и поддержки международных языков. Данный новый текстовый стек поддерживает оптимизированный символьный слой, чтобы показывать текст с сопоставимой резкостью текста в Win32/GDI:

image loader

Так же новый стек поддерживает явно выбираемые режимы прорисовки текста: aliased, grayscale, ClearType.

image loader

Новый текстовый стек позволяет оптимизировать текстовую привязку для анимации и статики. Вдобавок, новый текстовый стек поддерживает шрифты с встроенными картами изображений, что позволяет многим восточно-азиатским шрифтам прорисовываться с чёткостью, к которой привыкли пользователи Win32.

С выпуском WPF, Run.Text был простым CLR-свойством. Это значит, что Run.Text испытывает недостаток во всех преимуществах системы зависимостей свойств в WPF, самое значительное из которых — привязка. В WPF 4 мы конвертировали Run.Text в зависимое свойство, позволяющее разработчикам впервые использовать, привязанный к данным, Run. Больше информации об этом тут.

WPF включает в себя проверку орфографии, которая до 4-ой версии использовала словари предоставляемые ОС. Это было большой проблемой для приложений, которые используют специфическую терминологию, данные приложения надоедали постоянными уведомлениями о неправильном написании. WPF 4 представляет API, которое позволяет приложениям добавлять слова в словари, используемые WPF для проверки орфографии. Более подробно об этом тут.

Кисть выделения и каретки

В порыве разрешить разработчикам настраивать богатый вид WPF приложений, теперь вы можете изменить кисть для выделения текста и каретки через два простых свойства — SelectionBrush и CaretBrush:

80101706

Windows 7

Интеграция c Windows 7 интерфейсом

WPF 4 предоставляет новый и ключевой функционал в Windows 7 для WPF разработчиков. Новая панель задач захламлена и может передавать больше информации. Aero-пиктограммы поддерживают пользовательские команды. Jump List обеспечиваетт доступ к контекстуальному запуску задач и файлов для приложения.

Иконка наложения (Icon Overlays)image loader

Иконка наложения позволяет приложению выводить определённые уведомления и состояние пользователю через собственную кнопку в панели задач, отображая небольшое наложение, которое появляется в нижнем правом углу кнопки.

Кнопка в панели задача может быть использована для отображения простой информации о прогрессе, избавляю пользователя в нужде открывать окно для просмотра состояния. Индикатор прогресса может быть использован для отслеживания процесса копирования файлов, загрузки, инсталляции, записи данных на диск или другой операции, которая занимает определенный отрезок времени.

Панели миниатюр (Thumbnail Toolbars)
image loader
Панели миниатюр предоставляют доступ к ключевым команд для приложения без надобности пользователю активировать или разворачивать окно приложения. Данный функционал позволяет разработчикам приложений встраивать элементы управления приложением непосредственно в миниатюру предпросмотра окна. Приложение может включать, отключать или скрывать кнопки с панели миниатюры в зависимости от текущего состояния.

Основы WPF

Новый движок XAML/BAML парсера

В WPF 4 был заменена реализация XamlReader.Load(), BAML-загрузка, функциональность Control & DataTemplate новым движком построенным на основе нового System.Xaml.dll. Как часть стараний, мы исправили много ошибок и добавили много новых функциональных улучшений. Пользователи XamlReader.Load() могут воспользоваться несколькими новыми особенностями языка в XAML2009, такие как поддержка генерик-типов. MarkupExtensions и TypeConverters могут уже сейчас получать доступ к многим сервисам через создания объектного графа, позволяя выполнять больше сценариев, как доступ к Root-объекту. Будет еще проще создать инструменты для анализа и манипулирования XAML с новыми низкоуровневыми API, предоставляемые в System.Xaml.dll.

Поддержка привязки данных для DLR

Данная функциональность расширяет движок привязки данных в WPF для указания существующим свойствам и индексаторам синтаксис обращения к привязанным данным, для поддержки доступа к динамическим членам предлагаемого IDynamicMetaObjectProvider.

Visual State Manager (VSM)

Другая новая функциональность поддерживает WPF-Silverlight континуум в VisualStateManager, который представляет новый простой способ применять визуальные состояния элементов управления. Механизм позволяет настроить вид и поведение элемента управления, предоставляя средство указания управляющей логики к его соответствующему началу и концу визуальных состояний.

image loader

VSM является очень гибким в генерировании анимации перехода в соответствующие состояния, следовательно автор элемента управления тратит меньше времени на написание кода и больше времени на его вид. Это означает, что VSM может дать автору элемента управления возможность легко изменять поведение и вид элементов управления, а также изменять визуальный ответ элемента управления на пользовательское действие. Все это полностью поддерживается в Expression Blend.

HTML-XBAP Script Interop

WPF 4 обеспечивает средства для прямого общения между XBAP и скриптами в размещенной HTML странице (где XBAP загружен в HTML фрейм или элемент IFRAME). XBAP может получить глубокий доступ в HTML DOM, включая ActiveX элементы управления, встроенные в содержащей HTML странице, а также обрабатывать события DOM.

WPF открывает главный объект скрипта в размещаемом фрейме. Это динамический объект, который представляет объект окна фрейма, а также любые функции или глобальные переменные в скрипте на HTML странице. Из него, приложение может вызывать функции скрипта напрямую или обращаться к HTML DOM. Данная функциональность доступна в partial-trust XBAP и во всех поддерживаемых версиях Internet Explorer и Firefox.

WPF представил виртуализированне элементы управления в предыдущих версиях. Тем не менее, не было стандартизированного способа для клиента автоматизации взаимодействия с виртуализированным элементом управления. В WPF 4 было добавлено два новых шаблона для элементов управления — ItemsContainerPattern и VirtualizedItemPattern, для поддержки доступа и взаимодействия с виртуализированными элементами. ItemsContainerPattern используется для получения доступа к виртуализированным элементам управления и для поиска виртуализированного элемента, а VirtualizedItemPattern для реализации виртуализированных элементов.

Это еще один UIA шаблон проектирования элемента управления, добавленные в WPF 4. Данный шаблон используется клиентами автоматизации, чтобы отслеживать направление заданных событий ввода в корректный элемент WPF фреймворком. Данный шаблон имеет три события автоматизации: InputReachedTargetEvent, InputReachedOtherElementEvent и InputDiscardedEvent, чтобы сообщать, обработан ли ввод.

Развертывание

.NET Framework 4 Client Profile

Вы можете просматривать и изменять версию фреймворка, на которую ориентируетесь разработке, открыв свойства проекта, а далее выбрав закладку «Application». Далее выбрать в выпадающем списке “Target framework” полную версию или Client Profile. В «Publish» свойствах проекта вы также можете выбрать необходимую версию для ClickOnce развертывания. В Beta2, VS2010 автоматически выбирает правильный профиль, в зависимости от вашей первичной направленности проекта:

image loader

Тоже самое диалоговое окно вы увидите при создании “Setup and Deployment” проекта (“Add New Project”/“Other Project Types”). NET4 Client Profile выделен в списке по умолчанию.

Если вы установили полную версию фреймворка, вы можете переключится на Client Profile, удалив «Extended» Только один пункт в Добавлении/удалении программ Visual Studio Улучшенная поддержка ориентации на Client Profile в Visual Studio 2010.

Full trust развертывание XBAP приложений

Начиная с WPF 4, запрос на поднятие привилегий ClickOnce также включен для XAML Browser Applications (XBAPs) для интранет и доверительных зон, делая резвертывание еще проще для full-trust XBAP приложений. Для тех приложений, которые требуют повышенных прав безопасности, чем у минимальных прав доступа кода (CAS), пользователь должен выбрать «Запуск» при запросе поднятия привилегий ClickOnce, для запуска XBAP с требуемыми правами.

Источник

Учебник. Создание простого приложения на C#

При изучении этого руководства вы ознакомитесь со многими инструментами, диалоговыми окнами и конструкторами, которые можно использовать для разработки приложений в Visual Studio. Вам предстоит создать простое приложение «Hello, World», разработать пользовательский интерфейс, добавить код и выполнить отладку, одновременно приобретая навыки работы в интегрированной среде разработки (IDE).

Предварительные требования

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Настройка интегрированной среды разработки (IDE)

При первом открытии Visual Studio вам будет предложено выполнить вход. Для целей этого руководства это необязательно. Затем может появиться диалоговое окно, в котором предлагается выбрать параметры разработки и цветовую тему. Оставьте значения по умолчанию и нажмите Запуск Visual Studio.

exploreide settings

exploreide idewithgeneralsettings

При запуске Visual Studio сначала открывается начальное окно. Выберите Продолжить без кода, чтобы открыть среду разработки. Вы увидите окна инструментов, меню и панели инструментов, а также основную область окна. Окна инструментов закреплены в левой и правой частях окна приложения. Поле поиска, строка меню и стандартная панель инструментов закреплены в верхней части. При загрузке решения или проекта редакторы и конструкторы отображаются в центральной области окна приложения. При разработке приложения чаще всего используется именно эта область.

Создание проекта

При создании приложения в Visual Studio необходимо сначала создать проект и решение. Этот пример демонстрирует создание проекта Windows Presentation Foundation (WPF).

Создайте новый проект. В строке меню выберите Файл > Новый > Проект.

exploreide filenewproject

В диалоговом окне Новый проект выберите категорию Установленные > Visual C# > Рабочий стол Windows, а затем выберите шаблон Приложения WPF (.NET Framework). Присвойте проекту имя HelloWPFApp и щелкните ОК.

exploreide newprojectcsharp

Запустите Visual Studio.

На начальном экране выберите Создать проект.

start window create new project

На экране Создание проекта выполните поиск по запросу «WPF», выберите в результатах Приложение WPF и нажмите кнопку Далее.

explore ide new project csharp vs 2019

На следующем экране присвойте проекту имя HelloWPFApp и щелкните Далее.

explore ide name project

В окне Дополнительные сведения для целевой платформы должна быть указана версия .NET Core 3.1. Если это не так, выберите .NET Core 3.1. Затем нажмите Создать.

wpf target framework

Visual Studio создает решение и проект HelloWPFApp, а в обозревателе решений выводятся различные файлы. Конструктор WPF отображает представление кода и представление XAML MainWindow.xaml в представлении с разделением. Сдвигая разделитель, можно делать любое из представлений больше или меньше. Можно выбрать для просмотра только визуальное представление или только представление XAML.

exploreide wpfproject cs

Дополнительные сведения о XAML (eXtensible Application Markup Language) см. в обзоре XAML для WPF.

После создания проекта его можно настраивать. Для этого выберите Окно свойств в меню Представление или нажмите клавишу F4. Затем можно отображать и изменять параметры элементов проекта, элементов управления и других элементов в приложении.

exploreide hellowpfappfiles

Запустите Visual Studio.

На начальном экране выберите Создать проект.

start window create new project

На экране Создание проекта выполните поиск по запросу «WPF», выберите в результатах Приложение WPF и нажмите кнопку Далее.

explore ide new project csharp wpf vs 2022

На следующем экране присвойте проекту имя HelloWPFApp и щелкните Далее.

explore ide name project

В окне Дополнительные сведения для целевой платформы должна быть указана версия .NET 6.0. Если это не так, выберите .NET 6.0. Затем нажмите Создать.

wpf target framework

Visual Studio создает решение и проект HelloWPFApp, а в обозревателе решений выводятся различные файлы. Конструктор WPF отображает представление кода и представление XAML MainWindow.xaml в представлении с разделением. Сдвигая разделитель, можно делать любое из представлений больше или меньше. Можно выбрать для просмотра только визуальное представление или только представление XAML.

explore ide wpf project cs

Дополнительные сведения о XAML (eXtensible Application Markup Language) см. в обзоре XAML для WPF.

После создания проекта его можно настраивать. Для этого выберите Окно свойств в меню Представление или нажмите клавишу F4. Затем можно отображать и изменять параметры элементов проекта, элементов управления и других элементов в приложении.

explore ide hello wpf properties

Изменение имени MainWindow.xaml

Давайте присвоим файлу MainWindow более конкретное имя. В обозревателе решений щелкните правой кнопкой мыши файл MainWindow.xaml и выберите команду Переименовать. Измените имя файла на Greetings.xaml.

Конструирование пользовательского интерфейса (ИП)

Если конструктор не открыт, выберите файл Greetings.xaml и нажмите клавиши SHIFT+F7, чтобы открыть его.

В приложение будут добавлены элементы управления трех типов: элемент управления TextBlock, два элемента управления RadioButton и элемент управления Button.

Добавление элемента управления TextBlock

Нажмите клавиши CTRL+Q для активации поля поиска и введите Панель элементов. Выберите в списке результатов Представление > Панель элементов.

В окне Панель элементов разверните узел Типовые элементы управления WPF, чтобы увидеть элемент управления TextBlock.

exploreide

Добавьте элемент управления TextBlock в область конструктора, выбрав элемент управления TextBlock и перетащив его в окно. Отцентрируйте этот элемент в верхней части окна. В Visual Studio 2019 и более поздних версиях для выравнивания элемента управления по центру можно использовать красные направляющие.

Окно должно выглядеть так, как показано на следующем рисунке:

exploreide

Разметка XAML должна выглядеть приблизительно так, как в следующем примере:

Нажмите клавиши CTRL+Q для активации поля поиска и введите Панель элементов. Выберите в списке результатов Представление > Панель элементов.

В окне Панель элементов разверните узел Типовые элементы управления WPF, чтобы увидеть элемент управления TextBlock.

explore ide textblock

Добавьте элемент управления TextBlock в область конструктора, выбрав элемент управления TextBlock и перетащив его в окно. Отцентрируйте этот элемент в верхней части окна. Ориентируйтесь на рекомендации, чтобы отцентрировать элемент управления.

Окно должно выглядеть так, как показано на следующем рисунке.

explore ide greetings with textblock only

Разметка XAML должна выглядеть приблизительно так, как в следующем примере:

Настройка текста в текстовом блоке

Разметка XAML должна выглядеть приблизительно так, как в следующем примере:

При необходимости снова разместите элемент TextBlock по центру и сохраните изменения сочетанием клавиш CTRL+S или с помощью пункта меню Файл.

Следующий шаг — добавить в форму два элемента управления RadioButton.

Добавление переключателей

На панели элементов найдите элемент управления RadioButton.

Добавьте два элемента управления RadioButton в область конструктора, выбрав элемент RadioButton и перетащив его в область конструктора. Переместите кнопки (выбрав их и используя клавиши со стрелками), чтобы кнопки отображались рядом под элементом управления TextBlock. Используйте красные направляющие для выравнивания элемента управления.

Окно должно выглядеть следующим образом:

Теперь вы добавите отображаемый текст для каждого элемента управления RadioButton. Следующая процедура обновляет свойство Content элемента управления RadioButton.

На панели элементов найдите элемент управления RadioButton.

Добавьте два элемента управления RadioButton в область конструктора, выбрав элемент RadioButton и перетащив его в область конструктора. Переместите кнопки (выбрав их и используя клавиши со стрелками), чтобы кнопки отображались рядом под элементом управления TextBlock. Для выравнивания элементов управления можно использовать инструкции.

Окно должно выглядеть следующим образом:

Теперь вы добавите отображаемый текст для каждого элемента управления RadioButton. Следующая процедура обновляет свойство Content элемента управления RadioButton.

Добавление отображаемого текста для каждого переключателя

Измените атрибут Content для кнопок HelloButton и GoodbyeButton на «Hello» и «Goodbye» в XAML. Разметка XAML теперь должна выглядеть следующим образом:

Задание переключателя, выбранного по умолчанию

На этом этапе мы настроим элемент HelloButton как выбранный по умолчанию, чтобы всегда был выбран один из переключателей.

В представлении XAML найдите разметку для элемента HelloButton.

Разметка XAML теперь должна выглядеть следующим образом:

Последний элемент пользовательского интерфейса, который вам предстоит добавить, — это Button.

Добавление элемента управления Button

На панели элементов найдите элемент управления Button и добавьте его в область конструктора под элементами управления RadioButton, перетащив его на форму в представлении конструирования. Если вы используете Visual Studio 2019 или более позднюю версию, выровнять элемент управления по центру можно с помощью красной линии.

В представлении XAML измените значение свойства Содержимое элемента управления Button с Content=»Button» на Content=»Display» и сохраните изменения.

Окно должно выглядеть так, как показано на следующем рисунке.

exploreide greetingswithcontrollabels cs

Разметка XAML теперь должна выглядеть следующим образом:

На панели элементов найдите элемент управления Button и добавьте его в область конструктора под элементами управления RadioButton, перетащив его на форму в представлении конструирования. Ориентируйтесь на инструкции, чтобы отцентрировать элемент управления.

В представлении XAML измените значение свойства Содержимое элемента управления Button с Content=»Button» на Content=»Display» и сохраните изменения.

Окно должно выглядеть так, как показано на следующем снимке экрана.

explore ide greetings with control labels cs

Разметка XAML теперь должна выглядеть следующим образом:

Добавление кода к кнопке Display

После запуска приложения окно сообщения появится только тогда, когда пользователь выберет переключатель, а затем нажмет кнопку Display. Одно окно сообщения появится для Hello, и другое — для Goodbye. Чтобы задать такое поведение, добавьте код в событие Button_Click в файле Greetings.xaml.cs.

Введите следующий код:

После запуска приложения окно сообщения появится только тогда, когда пользователь выберет переключатель, а затем нажмет кнопку Display. Одно окно сообщения появится для Hello, и другое — для Goodbye. Чтобы задать такое поведение, добавьте код в событие Button_Click в файле Greetings.xaml.cs.

Введите следующий код:

Отладка и тестирование приложения

После этого вам предстоит отладить приложение для выявления ошибок и тестирования того, что оба окна сообщений отображаются правильно. Приведенные ниже инструкции описывают, как выполнить сборку и запустить отладчик (дополнительные сведения см. в разделах Построение приложения WPF и Отладка WPF).

Поиск и исправление ошибок

В этом шаге вам предстоит найти ошибку, которую мы намеренно допустили ранее, изменив имя файла MainWindow.xaml.

Начало отладки и поиск ошибки

Запустите отладчик, нажав клавишу F5 или выбрав пункты меню Отладка и Начать отладку.

Появится окно Режим приостановки выполнения, а в окне Вывод будет указано, что произошло исключение IOException: «Не удается найти ресурс mainwindow.xaml».

exploreide

Остановите отладчик, выбрав Отладка > Остановить отладку.

Мы переименовали MainWindow.xaml в Greetings.xaml в начале этого руководства, но код приложения по-прежнему ссылается на MainWindow.xaml как универсальный код ресурса (URI), поэтому проект не может быть запущен.

Запустите отладчик, нажав клавишу F5 или выбрав пункты меню Отладка и Начать отладку.

Появится окно Режим приостановки выполнения, а в окне Вывод будет указано, что произошло исключение IOException: «Не удается найти ресурс mainwindow.xaml».

explore ide

Остановите отладчик, выбрав Отладка > Остановить отладку.

Мы переименовали MainWindow.xaml в Greetings.xaml в начале этого руководства, но код приложения по-прежнему ссылается на MainWindow.xaml как универсальный код ресурса (URI), поэтому проект не может быть запущен.

Задание Greetings.xaml в качестве начального универсального кода ресурса (URI)

В обозревателе решений откройте файл App.xaml.

Измените StartupUri=»MainWindow.xaml» на StartupUri=»Greetings.xaml» и сохраните изменения.

Как дополнительный шаг это позволит избежать путаницы при изменении заголовка окна приложения в соответствии с новым именем.

В Обозревателе решений откройте файл Greetings.xaml, который вы только что переименовали.

Измените значение свойства Window.Title с Title=»MainWindow» на Title=»Greetings» и сохраните изменения.

Запустите отладчик снова (клавишей F5). Должно появиться окно приветствия приложения.

exploreide wpf running app

exploreide wpf running app

explore ide wpf running app

Теперь закройте окно приложения, чтобы остановить отладку.

Отладка с точками останова

Добавив точки останова, можно тестировать код во время отладки. Точки останова можно добавлять, выбирая в меню Отладка > Точка останова, щелкая в левом поле редактора рядом со строкой кода, в которой требуется приостановить выполнение, или нажимая клавишу F9.

Добавление точек останова

Добавьте точку останова, выбрав меню Отладка, затем — Точка останова.

Рядом со строкой кода в крайнем левом поле окна редактора появится красный кружок.

Нажмите клавишу F9, чтобы добавить точку останова, а затем нажмите клавишу F5, чтобы начать отладку.

Строка MessageBox.Show(«Hello.») выделяется желтым цветом. В нижней части интегрированной среды разработки слева закреплены окна «Видимые», «Локальные» и «Контрольные значения», а справа — окна «Стек вызовов», «Точки останова», «Параметры исключений», «Команда», «Интерпретация» и «Вывод».

exploreide debugbreakpoint

В строке меню выберите Отладка > Шаг с выходом.

Приложение возобновит выполнение, и появится окно сообщения со словом «Hello».

Нажмите кнопку ОК в окне сообщения, чтобы закрыть его.

Строка MessageBox.Show(«Goodbye.») выделяется желтым цветом.

Закройте окно приложения, чтобы остановить отладку.

В строке меню выберите Отладка > Выключить все точки останова.

Добавьте точку останова, выбрав меню Отладка, затем — Точка останова.

Рядом со строкой кода в крайнем левом поле окна редактора появится красный кружок.

Нажмите клавишу F9, чтобы добавить точку останова, а затем нажмите клавишу F5, чтобы начать отладку.

Строка MessageBox.Show(«Hello.») выделяется желтым цветом. В нижней части интегрированной среды разработки слева закреплены окна «Видимые», «Локальные» и «Контрольные значения», а справа — окна «Стек вызовов», «Точки останова», «Параметры исключений», «Команда», «Интерпретация» и «Вывод».

explore ide debug breakpoint

В строке меню выберите Отладка > Шаг с выходом.

Приложение возобновит выполнение, и появится окно сообщения со словом «Hello».

Нажмите кнопку ОК в окне сообщения, чтобы закрыть его.

Строка MessageBox.Show(«Goodbye.») выделяется желтым цветом.

Закройте окно приложения, чтобы остановить отладку.

В строке меню выберите Отладка > Выключить все точки останова.

Просмотр представления элементов пользовательского интерфейса

В работающем приложении в верхней части окна должно отображаться мини-приложение. Мини-приложение — это вспомогательное средство времени выполнения, обеспечивающее быстрый доступ к некоторым полезным возможностям отладки. Нажмите первую кнопку, Перейти к динамическому визуальному дереву. Должно отобразиться окно с деревом, содержащим все визуальные элементы страницы. Разверните узлы, чтобы найти добавленные кнопки.

exploreide live visual tree

explore ide live visual tree

Сборка окончательной версии приложения

Теперь, когда вы проверили, что все работает, можно подготовить окончательную сборку приложения.

Выберите в главном меню Сборка > Очистить решение для удаления промежуточных файлов и выходных файлов, которые были созданы в ходе предыдущих сборок. Этот шаг не является обязательным, но позволяет очистить результаты отладочной сборки.

Измените конфигурацию сборки для HelloWPFApp с Отладка на Выпуск с помощью раскрывающегося списка на панели инструментов (сейчас это «Отладка»).

Выполните сборку решения, выбрав Сборка > Собрать решение.

Поздравляем с завершением этого учебника! Построенный файл .exe находится в каталоге решения и проекта ( . \HelloWPFApp\HelloWPFApp\bin\Release).

Следующие шаги

Поздравляем с завершением этого учебника! Для получения дополнительных сведений перейдите к следующим руководствам.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • wpf c примеры приложений
  • wow приложение для андроид что это