Сегодня мы выпускаем 12-ю предварительную версию Пользовательский интерфейс многоплатформенного приложения .
NET со многими улучшениями качества и некоторыми новыми функциями.
По мере приближения к выпуску нашей первой стабильной версии баланс работы начинает смещаться в сторону улучшения качества и стабильности, хотя есть еще несколько интересных новых функций, на которые стоит обратить внимание, в том числе:
- Новая документация по значкам приложений, жизненному циклу приложения, кистям, элементам управления и отдельному проекту
- Обработчик FlyoutView реализован на Android
- Добавлены обработчики совместимости для RelativeLayout и AbsoluteLayout.
- Добавлено свойство Z-индекс.
- Унификация .
NET 6 — типы iOS
- Расширенная панель инструментов Windows — без оболочки
В этом выпуске также представлены интересные улучшения.
Оболочка .
Давайте поближе взглянем на Shell в Preview 12.
Навигация в .
NET MAUI: фокус оболочки Shell — это шаблон приложения, который упрощает общий дизайн приложений, использующих всплывающие меню и вкладки.
В вашей оболочке, обычно называемой в наших примерах AppShell, вы начинаете добавлять страницы в приложение и располагать их в желаемой структуре навигации.
Вот пример приложения .
NET-подкаст :
<Shell xmlns=" http://schemas.microsoft.com/dotnet/2021/maui " xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml " xmlns:pages="clr-namespace:Microsoft.NetConf2021.Maui.Pages " xmlns:root="clr-namespace:Microsoft.NetConf2021.Maui " xmlns:viewmodels="clr-namespace:Microsoft.NetConf2021.Maui.ViewModels " x:DataType=" viewmodels:ShellViewModel " x:Class="Microsoft.NetConf2021.Maui.Pages.MobileShell"> <TabBar> <Tab Title="{Привязка Discover.Title}" Icon="{Binding Discover.Icon}"> <ShellContent ContentTemplate="{DataTemplate pages:DiscoverPage }" /> </Tab> <Tab Title="{Привязка подписок.
Название}" Icon="{Binding Subscriptions.Icon}"> <ShellContent ContentTemplate="{DataTemplate pages:SubscriptionsPage }" /> </Tab> <Tab Title="{Привязка ListenLater.Title}" Icon="{Binding ListenLater.Icon}"> <ShellContent ContentTemplate="{DataTemplate pages:ListenLaterPage }" /> </Tab> <Tab Title="{Привязка ListenTogether.Title}" Icon="{Binding ListenTogether.Icon}" IsVisible="{x:Static root:Config.ListenTogetherIsVisible }"> <ShellContent ContentTemplate="{DataTemplate pages:ListenTogetherPage }" /> </Tab> <Tab Title="{Настройки привязки.
Название}" Icon="{Binding Settings.Icon}"> <ShellContent ContentTemplate="{DataTemplate pages:SettingsPage }" /> </Tab> </TabBar> </Shell>
Навигация внутри контекста оболочки осуществляется с помощью маршрутизации на основе URI. На центральном изображении снимка экрана мы перешли к подробному представлению, которого нет в приведенном выше XAML. Для страниц, которые вы не хотите видеть, вы можете объявить для них маршруты в коде, а затем перейти к ним по URI. Вы можете увидеть это еще раз в коде приложения подкаста «App.xaml.cs»:
Routing.RegisterRoute(nameof(DiscoverPage), typeof(DiscoverPage));
Routing.RegisterRoute(nameof(ShowDetailPage), typeof(ShowDetailPage));
Routing.RegisterRoute(nameof(EpisodeDetailPage), typeof(EpisodeDetailPage));
Routing.RegisterRoute(nameof(CategoriesPage), typeof(CategoriesPage));
Routing.RegisterRoute(nameof(CategoryPage), typeof(CategoryPage));
Чтобы перейти с главного экрана на просмотр подробностей, когда пользователь касается изображения обложки, приложение запускает команду в контексте привязки ShowViewModel:
private Task NavigateToDetailCommandExecute()
{
return Shell.Current.GoToAsync($"{nameof(ShowDetailPage)}ЭId={Show.Id}");
}
Из любого места кода приложения вы можете получить доступ к Shell.Current для выполнения команд навигации, прослушивания событий навигации и многого другого.Он также демонстрирует одну из мощных функций навигации Shell: параметры запроса для передачи простых данных.
В этом случае «Show.Id» передается вместе с маршрутом, а затем Shell применяет это значение к контексту привязки ShowDetailPage, делая его немедленно готовым к использованию.
«QueryProperty» обрабатывает сопоставление параметра строки запроса с общедоступным свойством.
[QueryProperty(nameof(Id), nameof(Id))]
public class ShowDetailViewModel : BaseViewModel
{
public string Id { get; set; }
}
Обертка и внедрение зависимостей
Использование HostBuilder в .NET MAUI и мощное внедрение зависимостей было изюминкой предварительных выпусков.
Одним из самых популярных комментариев, которые мы получили о Shell, является желание использовать внедрение конструктора, и в этом выпуске, благодаря усилиям участников Брайан Рэнк теперь вы можете использовать его! Определите свои зависимости в контейнере DI, обычно «MauiProgram.cs»: public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.
UseMauiApp<App>(); builder.Services .
AddSingleton<MainViewModel>();
return builder.Build();
}
}
Затем на странице, куда нужно ввести: public partial class MainPage
{
readonly MainViewModel _viewModel;
public MainPage(MainViewModel viewModel)
{
InitializeComponent();
BindingContext = _viewModel = viewModel;
}
}
Shell предлагает множество вариантов стилей и шаблонов, что позволяет быстро удовлетворить самые распространенные потребности.
Для более подробной информации проверьте Документация оболочки .
Начните сегодня!
Перед установкой Visual Studio 2022 Preview мы настоятельно рекомендуем начать с чистого листа, удалив все Предварительный просмотр .NET 6
И Визуальная Студия 2022 .Теперь установите предварительную версию Visual Studio 2022 (17.1 Preview 3) и убедитесь, что в разделе «Разработка мобильных устройств с рабочей нагрузкой .
NET» установлен флажок .
NET MAUI (предварительная версия).
Готовый? Откройте Visual Studio 2022 и создайте новый проект. Найдите и выберите .
NET MAUI. Предварительная версия 12 примечаний к выпуску находится по адресу GitHub .
Дополнительную информацию о начале работы с .
NET MAUI см.
в нашей статье.
Теги: #microsoft #C++ #.
NET #интерфейсы #Visual Studio #maui #.
net maui
-
Uwp – Выпуск 248
19 Oct, 24 -
Мысли О Социализации Юридических Программ
19 Oct, 24 -
Мяч Отвечает На Вопросы
19 Oct, 24