Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Прежде чем приступить к написанию кода приложения, мы рассмотрим проект Visual Studio и позаботимся о настройке некоторых проектов. При создании проекта WinUI 3 Visual Studio создаются несколько важных папок и файлов кода. Их можно увидеть в области Обозреватель решений Visual Studio:
Перечисленные здесь элементы — это те, с с которыми вы будете взаимодействовать в первую очередь. Эти файлы помогают настроить и запустить приложение WinUI 3. Каждый файл служит другой целью, описанной ниже:
Папка ресурсов
Эта папка содержит логотип приложения, изображения и другие ресурсы мультимедиа. Он начинает заполнены заполнителями для логотипа вашего приложения. Этот логотип представляет приложение в меню "Пуск" Windows, панели задач Windows и в Microsoft Store при публикации приложения.
App.xaml и App.xaml.cs.
Файл App.xaml содержит ресурсы XAML на уровне приложения, такие как цвета, стили или шаблоны. Файл App.xaml.cs обычно содержит код, который создает экземпляры и активирует окно приложения. В этом проекте он указывает на
MainWindowкласс.MainWindow.xaml и MainWindow.xaml.cs.
Эти файлы представляют окно приложения.
Package.appxmanifest
Этот файл манифеста пакета позволяет настроить сведения о издателе, логотипы, архитектуры процессора и другие сведения, определяющие, как приложение отображается в Microsoft Store.
XAML-файлы и частичные классы
Расширяемый язык разметки приложений (XAML) — это декларативный язык, который может инициализировать объекты и задать свойства объектов. Вы можете создать видимые элементы пользовательского интерфейса в декларативной разметке XAML. Затем можно связать отдельный файл кода для каждого ФАЙЛА XAML (обычно называемого файлом программной части ), который может реагировать на события и управлять объектами, которые изначально объявляются в XAML.
Обычно в обозревателе решений есть два файла с любым XAML-файлом, .xaml самим файлом и соответствующим файлом кода, который является дочерним элементом в обозревателе решений.
- Файл
.xamlсодержит разметку XAML, которая определяет пользовательский интерфейс приложения. Имя класса объявляется атрибутомx:Class. - Файл кода содержит код, который создается для взаимодействия с разметкой XAML и вызовом
InitializeComponentметода. Класс определяется как .partial class
При сборке проекта InitializeComponent вызывается метод для анализа .xaml файла и создания кода, присоединенного к коду partial class для создания полного класса.
Дополнительные сведения см. в документации:
- Общие сведения о XAML
- Частичные классы и методы (руководство по программированию на C#)
- Атрибут x:Class, директива x:Class
Обновление MainWindow
Класс MainWindow , включенный в проект, является подклассом класса XAML Window , который используется для определения оболочки приложения. Окно приложения состоит из двух частей:
- Клиентская часть окна — это место, куда идет содержимое.
- Часть , не связанная с клиентом, является частью, управляемой операционной системой Windows. Она включает строку заголовка, в которой находятся элементы управления заголовками (кнопки Min/Max/Close), значок приложения, название и область перетаскивания. Он также включает рамку за пределами окна.
Чтобы сделать приложение WinUI Notes совместимым с рекомендациями fluent Design, вы внесите несколько изменений MainWindowв . Во-первых, вы примените материал мики в качестве фона окна. Мика является непрозрачным, динамическим материалом, который включает темы и классические обои для рисования фона окна. Затем вы расширите содержимое приложения в область заголовков и замените системную строку заголовка элементом управления TitleBar XAML. Это позволяет лучше использовать пространство и обеспечивает больший контроль над дизайном, обеспечивая все функциональные возможности, необходимые для заголовка.
Вы также добавите кадр в качестве содержимого окна. Класс Frame работает с классом Page , чтобы позволить вам перемещаться между страницами содержимого в приложении. Вы добавите страницы на следующем шаге.
Подсказка
Вы можете скачать или просмотреть код для этого руководства из репозитория GitHub. Чтобы увидеть код, как на этом шаге, см. эту фиксацию: страница заметок — начальная.
Дважды щелкните MainWindow.xaml в обозревателе решений , чтобы открыть его.
Между открывающим и закрывающим
<Window.. >тегами замените существующий XAML следующим образом:<Window.SystemBackdrop> <MicaBackdrop Kind="Base"/> </Window.SystemBackdrop> <Grid> <Grid.RowDefinitions> <!-- Title Bar --> <RowDefinition Height="Auto" /> <!-- App Content --> <RowDefinition Height="*" /> </Grid.RowDefinitions> <TitleBar x:Name="AppTitleBar" Title="WinUI Notes"> <TitleBar.IconSource> <FontIconSource Glyph=""/> </TitleBar.IconSource> </TitleBar> <!-- App content --> <Frame x:Name="rootFrame" Grid.Row="1"/> </Grid>Сохраните файл, нажав клавиши CTRL+S, щелкнув значок "Сохранить" на панели инструментов или выбрав файл меню>"Сохранить MainPage.xaml".
Не беспокойтесь, если вы не понимаете, что все это разметка XAML делает прямо сейчас. При создании остального пользовательского интерфейса приложения мы подробно объясним основные понятия XAML.
Замечание
В этой разметке вы увидите два разных способа задания свойств в XAML. Первый и самый короткий способ — использовать синтаксис атрибута XAML, как показано ниже <object attribute="value">. Это отлично подходит для простых значений, таких как <MicaBackdrop Kind="Base"/>. Но он работает только для значений, в которых средство синтаксического анализа XAML знает, как преобразовать строку в ожидаемый тип значения.
Если значение свойства является более сложным или средство синтаксического анализа XAML не знает, как преобразовать его, необходимо использовать синтаксис элемента свойства для создания объекта. Типа того:
<object ... >
<object.property>
value
</object.property>
</object>
Например, чтобы задать Window.SystemBackdrop свойство, необходимо использовать синтаксис элемента свойства и явно создать MicaBackdrop элемент. Но для задания свойства можно использовать простой синтаксис атрибута MicaBackdrop.Kind .
<Window ... >
<Window.SystemBackdrop>
<MicaBackdrop Kind="Base"/>
</Window.SystemBackdrop>
...
</Window>
В MainWindow.xaml, <Window.SystemBackdrop><Grid.RowDefinitions>и <TitleBar.IconSource> содержат сложные значения, которые должны быть заданы с синтаксисом элемента свойства.
Дополнительные сведения см. в документации:
Если вы запускаете приложение сейчас, вы увидите добавленный элемент XAML TitleBar , но он будет находиться под строкой заголовка системы, которая по-прежнему отображается.
Чтобы завершить замену строки заголовка системы, необходимо написать немного кода.
Откройте MainWindow.xaml.cs. Вы можете открыть код программной части ( MainWindow.xaml или любой XAML-файл) тремя способами:
- MainWindow.xaml Если файл открыт и является активным документом, редактируемым, нажмите клавишу F7.
- MainWindow.xaml Если файл открыт и является активным документом, щелкните правой кнопкой мыши в текстовом редакторе и выберите "Вид кода".
- Используйте обозреватель решений , чтобы развернуть MainWindow.xaml запись, показыв MainWindow.xaml.cs файл. Дважды щелкните файл, чтобы открыть его.
В конструкторе для
MainWindowдобавьте этот код после вызоваInitializeComponent:public MainWindow() { this.InitializeComponent(); // ↓ Add this. ↓ // Hide the default system title bar. ExtendsContentIntoTitleBar = true; // Replace system title bar with the WinUI TitleBar. SetTitleBar(AppTitleBar); // ↑ Add this. ↑ }Свойство ExtendsContentIntoTitleBar скрывает строку заголовка системы по умолчанию и расширяет XAML приложения в этой области. Затем вызов SetTitleBar сообщает системе об обработке указанного вами элемента XAML (
AppTitleBar) в качестве заголовка для приложения.Создайте и запустите проект, нажав клавишу F5, нажав кнопку отладки "Пуск" на панели инструментов или выбрав меню Запустить>отладку.
При запуске приложения вы увидите пустое окно с фоном микы и строкой заголовка XAML, заменив строку заголовка системы.
Windows developer