Window Класс
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет окно текущего приложения.
/// [Microsoft.UI.Xaml.Markup.ContentProperty(Name="Content")] /// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)] /// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)] /// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)] class Window
[Microsoft.UI.Xaml.Markup.ContentProperty(Name="Content")] [Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)] [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)] [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)] public class Window
Public Class Window
Наследование
Object IInspectable Window
Примеры
OnLaunched
В следующем примере кода показано переопределение метода OnLaunched , созданное для шаблона WinUI in Desktop в Microsoft Visual Studio. В этом коде демонстрируется типичное использование метода Activate в Window .
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args) < m_window = new MainWindow(); m_window.Activate(); >private Window m_window;
Создание нового окна
В приложениях вы можете создать каждое окно явным образом. Для создания нескольких окон требуется обновление 1.0.1 до WindowsAppSDK и ограничено одним потоком.
var window = new Window(); window.Content = new TextBlock() < Text = "Hello" >; window.Activate();
Вы также можете определить новое окно в разметке:
Hello
с соответствующим кодом программной части:
public partial class MainWindow : Window < public MainWindow() < InitializeComponent(); >> . var window = new MainWindow(); window.Activate();
Комментарии
В приложениях можно создать несколько Window потоков. См . статью Создание нового окна в разделе Примеры.
Window реализует IWindowNative для включения взаимодействия с помощью HWND Окна (WindowHandle).
Как правило, Window используется для задания uiElementзначения Content , представляющего пользовательский интерфейс приложения. Обычно это делается в рамках активации приложения (например, при переопределении OnLaunched ) и позволяет изменять содержимое окна на протяжении всего времени существования окна.
Убедитесь, что вы вызываете метод Activate для всех Window используемых при начальной активации. Если вы используете шаблоны приложений по умолчанию из Microsoft Visual Studio, Window.Activate включается в файл кода программной части App.xaml.
Конструкторы
Инициализирует новый экземпляр класса Window .
Свойства
Возвращает объект , связанный AppWindow с этим XAML Window .
Возвращает значение Rect, содержащее высоту и ширину окна приложения в единицах эффективных (просмотр) пикселей.
Возвращает значение Compositor для этого окна.
Возвращает или задает визуальный корень окна приложения.
Классические приложения всегда возвращают для null этого свойства.
Классические приложения всегда возвращают для null этого свойства.
Всегда возвращается null в приложении Windows App SDK.
Window.Dispatcher в будущих выпусках могут быть изменены или недоступны. Вместо этого используйте Window.DispatcherQueue .
DispatcherQueue Возвращает объект для окна.
Получает или задает значение, указывающее, должна ли быть скрыта строка заголовка окна по умолчанию для создания пространства для содержимого приложения.
Возвращает или задает системный фон, применяемый к данному Window объекту . Фон отображается за Window содержимым.
Возвращает или задает строку, используемую для заголовка окна.
Возвращает значение, указывающее, является ли окно видимым.
Методы
Пытается активировать окно приложения, переведя его на передний план и задав фокус ввода.
Закрывает окно приложения.
Включает поведение строки заголовка для элемента XAML, если ExtendsContentIntoTitleBar имеет значение true .
События
Происходит при успешной активации окна.
Происходит при закрытии окна.
Происходит при первом отрисовке окна приложения или изменении размера отрисовки.
Происходит при изменении значения свойства Visible .
Библиотека пользовательского интерфейса Windows 2.0
WinUI 2.0 — это первый общедоступный выпуск библиотеки пользовательского интерфейса Windows (выпущен в октябре 2018 г.).
WinUI — это самый простой способ создания замечательных интерфейсов Fluent Design для разработки Windows.
Он включает два пакета NuGet:
- Microsoft.UI.Xaml: элементы управления и fluent Design для приложений UWP. Это основной пакет WinUI.
- Microsoft.UI.Xaml.Core.Direct: низкоуровневые API для использования в компонентах ПО промежуточного слоя.
Скачать и использовать пакеты WinUI для приложения можно через диспетчера пакетов NuGet, как описано в статье о начале работы с библиотекой пользовательского интерфейса Windows.
Библиотека пользовательского интерфейса Windows (WinUI) размещена на GitHub , где мы рекомендуем отправлять отчеты об ошибках, запросы функций и вклады кода сообщества.
Microsoft.UI.Xaml 2.0.181011001
Это первый выпуск пакета NuGet Microsoft.UI.Xaml. Включает в себя официальные нативные элементы управления и функции в стиле Fluent для приложений Windows UWP.
Новые возможности
Элементы управления и шаблоны в этом выпуске включают:
| Функция | Description |
|---|---|
| AcrylicBrush; | Закрашивает область полупрозрачным материалом, который использует несколько эффектов, включая размытие и текстуру шума. |
| BitmapIconSource | Представляет источник значков, в котором в качестве содержимого используется точечный рисунок. |
| ColorPicker | Представляет элемент управления, позволяющий пользователю выбирать цвет с помощью цветового спектра, ползунков и ввода текста. |
| CommandBarFlyout | Представляет специализированное всплывающее окно, которое предоставляет макет для AppBarButton и связанных элементов команды. |
| DropDownButton | Представляет кнопку с шевроном, предназначенным для открытия меню. |
| FontIconSource | Представляет источник значков, который использует глиф из указанного шрифта. |
| MenuBar | Представляет специализированный контейнер, представляющий набор меню в горизонтальной строке, обычно в верхней части окна приложения. |
| MenuBarItem | Представляет меню верхнего уровня в элементе управления MenuBar. |
| NavigationView | Представляет контейнер, позволяющий переходить по содержимому приложения. У него есть заголовок, представление для основного содержимого и панель меню для команд навигации. |
| ParallaxView | Представляет контейнер, связывающий положение прокрутки элемента переднего плана, например списка, к фоновому элементу, например изображению. При прокрутке элемента переднего плана он анимирует фоновый элемент, создавая эффект параллакса. |
| PersonPicture | Представляет элемент управления аватаром пользователя отображает аватар для пользователя, если он доступен; в противном случае отображаются инициалы или универсальный глиф. |
| RatingControl | Представляет элемент управления, позволяющий пользователю ввести оценку по звездам. |
| RefreshContainer | Представляет элемент управления контейнера, предоставляющий функции RefreshVisualizer и «Потяните, чтобы обновить» для прокручиваемого содержимого. |
| RefreshVisualizer | Представляет элемент управления, предоставляющий индикаторы анимированного состояния для обновления содержимого. |
| RevealBackgroundBrush | Рисует фон элемента управления с эффектом проявления с помощью кисти композиции и световых эффектов. |
| RevealBorderBrush | Рисует границу элемента управления с эффектом проявления с помощью кисти композиции и световых эффектов. |
| RevealBrush | Базовый класс для кистей, использующих эффекты композиции и подсвечивания для реализации визуального проектирования отображения. |
| SplitButton | Представляет кнопку, состоящую из двух частей, которые можно использовать по-отдельности. Одна часть представляет собой стандартную кнопку, а другая часть вызывает всплывающее окно. |
| SwipeControl | Представляет контейнер, предоставляющий доступ к контекстным командам через сенсорные взаимодействия. |
| SymbolIconSource | Представляет источник значков, в которой в качестве содержимого используется глиф из средств шрифта Segoe MDL2. |
| TextCommandBarFlyout | Представляет специальное всплывающее меню панели команд, содержащее команды для редактирования текста. |
| ToggleSplitButton | Представляет кнопку, состоящую из двух частей, которые можно использовать по-отдельности. Одна часть представляет собой выключатель, а другая часть вызывает всплывающее окно. |
| Представление в виде дерева | Представляет иерархический список с разворачиваемыми и сворачиваемыми узлами, которые содержат вложенные элементы. |
Примеры
Дополнительные сведения, рекомендации по проектированию и примеры кода см. в статье Проектирование и разработка приложений для Windows.
Приложения из коллекции WinUI 3 и коллекции WinUI 2 включают интерактивные примеры большинства элементов управления, возможностей и функций WinUI 3 и WinUI 2.
Если они уже установлены, откройте их с помощью следующих ссылок: коллекция WinUI 3 или коллекция WinUI 2.
Если они не установлены, вы можете скачать коллекцию WinUI 3 и коллекцию WinUI 2 из Microsoft Store.
Исходный код можно также получить из GitHub (используйте главную ветвь для WinUI 3 и ветвь winui2 для WinUI 2).
Документация
Практические руководства по элементам управления из библиотеки пользовательского интерфейса Windows вы найдете в документации по элементам управления универсальной платформы Windows.
Справочные документы по API находятся здесь: API библиотеки пользовательского интерфейса Windows.
Начало работы с библиотекой пользовательского интерфейса Windows 2
Библиотека пользовательского интерфейса Windows 2.8 — это последняя стабильная версия WinUI, которую можно использовать для создания рабочих приложений UWP (и классических приложений, использующих XAML Islands).
Эта библиотека доступна в виде пакета NuGet, который можно добавить в любой новый или существующий проект Visual Studio.
Дополнительные сведения о создании классических приложений Windows с использованием последней версии WinUI 3 см. в статье Библиотека пользовательского интерфейса Windows 3.
Загрузка и установка библиотеки пользовательского интерфейса Windows
- Скачайте Visual Studio 2022 и убедитесь, что вы выбрали рабочую нагрузку разработки универсальная платформа Windows в установщике Visual Studio.
- Откройте существующий проект или создайте новый проект с помощью шаблона «Пустое приложение»в Visual C# -> Windows -> Универсальный, или используя соответствующий шаблон для вашей языковой проекции.
Важно! Чтобы использовать WinUI 2.8, необходимо задать TargetPlatformVersion = 10.0.18362.0 и TargetPlatformMinVersion >>= 10.0.17763.0 в свойствах проекта.

Панель Обозревателя решений с открытым с помощью щелчка правой кнопкой проектом и выделенным параметром «Управление пакетами NuGet».

Диалоговое окно диспетчера пакетов NuGet с открытой вкладкой «Обзор», в поле поиска которой отображается запись «winui», и флажком «Включить предварительные выпуски».
b. Если у вас есть другие ресурсы, мы рекомендуем добавить их в XamlControlsResources.MergedDictionaries . Это работает с системой ресурсов платформы, чтобы разрешить переопределение ресурсов XamlControlsResources .
-
На странице XAML добавьте ссылку в верхней части страницы.
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
using MUXC = Microsoft.UI.Xaml.Controls;
Дополнительные шаги для проекта C++/WinRT
Когда вы добавляете пакет NuGet в проект C++/WinRT, средство создает набор заголовков проекции в папке проекта \Generated Files\winrt . Чтобы поместить эти файлы с заголовками в свой проект и чтобы ссылки на эти новые типы работали, можно перейти к предварительно откомпилированному файлу заголовка (обычно pch.h ) и включить их в файл проекта. Ниже приведен пример, включающий созданные файлы заголовков для пакета Microsoft.UI.Xaml.
// pch.h . #include #include #include #include .
Полное пошаговое руководство по добавлению простой поддержки библиотеки пользовательского интерфейса Windows в проект C++/WinRT см. в статье Простой пример библиотеки пользовательского интерфейса Windows для C++/WinRT.
Дополнение к библиотеке пользовательского интерфейса Windows
Мы приветствуем отчеты об ошибках, запросы функций и вклады кода сообщества в репозитории Microsoft-ui-xaml на GitHub.
Другие ресурсы
Если вы не знакомы с UWP, рекомендуем ознакомится со статьей Приступая к работе с приложениями для Windows 10 на портале разработчика.
Заметки о выпуске библиотеки пользовательского интерфейса Windows 2
Библиотека пользовательского интерфейса Windows (WinUI) размещена на GitHub , где мы рекомендуем отправлять отчеты об ошибках, запросы функций и вклады кода сообщества.
WinUI включает два пакета NuGet:
- Microsoft.UI.Xaml: элементы управления и fluent Design для приложений UWP. Это основной пакет WinUI.
- Microsoft.UI.Xaml.Core.Direct: низкоуровневые API для использования в компонентах ПО промежуточного слоя.
Скачать и использовать пакеты WinUI для приложения можно через диспетчера пакетов NuGet, как описано в статье о начале работы с библиотекой пользовательского интерфейса Windows.
Примеры
Дополнительные сведения, рекомендации по проектированию и примеры кода см. в статье Проектирование и разработка приложений для Windows.
Приложения из коллекции WinUI 2 включают интерактивные примеры большинства элементов управления, возможностей и функций WinUI 2.
Если приложение коллекции уже установлено, щелкните коллекцию WinUI 2, чтобы открыть ее.
Если приложение коллекции не установлено, скачайте коллекцию WinUI 2 из Microsoft Store.
Исходный код можно также получить из GitHub (выберите ветвь winui2).
Документация
Практические руководства по элементам управления из библиотеки пользовательского интерфейса Windows вы найдете в документации по элементам управления универсальной платформы Windows.
Справочные документы по API находятся здесь: API библиотеки пользовательского интерфейса Windows.
Журнал версий
| Версия пакета NuGet Microsoft.UI.Xaml | Тип | Дата запуска в производство | Заметки о выпуске | Советы |
|---|---|---|---|---|
| 2.8 | stable | Июль 2022 | Заметки о выпуске | WebView2 |
| 2.7 | stable | Сентябрь 2021 года | Заметки о выпуске | InfoBadge, горизонтальная ориентация в ColorPicker |
| 2.6 | stable | Июнь 2021 года | Заметки о выпуске | Mica, Expander, BreadcrumbBar, ImageIcon, AnimatedIcon, PipsPager |
| 2.5 | stable | Декабрь 2020 г. | Заметки о выпуске | InfoBar, определение ProgressRing, FooterMenuItems для NavigationView |
| 2.4 | stable | Май 2020 г. | Заметки о выпуске | RadialGradientBrush, ProgressRing, обновления TabView, обновление темной темы для семейства элементов управления TextBox, иерархическая навигация |
| 2.3 | stable | Ноябрь 2019 г. | Заметки о выпуске | Обновление внешнего вида индикатора выполнения, NumberBox, RadioButtons |
| 2.2 | stable | Август 2019 | Заметки о выпуске | TabView, обновление NavigationView, обновление визуального стиля |
| 2.1 | stable | Апрель 2019 г. | Заметки о выпуске | Первый выпуск с открытым кодом из GitHub. Сюда входят ItemsRepeater, AnimatedVisualPlayer, TeachingTip, RadioMenuFlyoutItem, CompactDensity и Shadows. |
| 2.0 | stable | 2018 октября | Заметки о выпуске | Исходный выпуск. Включает в себя официальные нативные элементы управления и функции в стиле Fluent для приложений Windows UWP. |
Библиотека пользовательского интерфейса Windows 3, предварительная версия 4 (февраль 2021 г.)
Дополнительные сведения о создании классических приложений Windows и приложений UWP с использованием последней версии WinUI 3 см. в статье Библиотека пользовательского интерфейса Windows 3.