Hans  Marvin

Hans Marvin

1659379200

Let's Explore Multi-Windows in .NET MAUI

Multi-windows are a nice feature in .NET MAUI, and we can give their desktop version extra TLC.

.NET MAUI is a wonderful tool that allows you to create applications with the same common code base for both desktop and mobile devices and can be developed for Android, iOS, macOS and Windows.

Some features are more useful on the desktop version of an application and so will require extra attention. One such functionality is multi-windows. Desktop and tablets can allow multiple windows and views when you have an app open. On these devices this functionality carries more weight and is more necessary, however we can do it on mobile versions as well.

See more at: https://www.telerik.com/blogs/exploring-multi-windows-dotnet-maui

#dotnet #dotnetmaui #csharp 

Let's Explore Multi-Windows in .NET MAUI
Thierry  Perret

Thierry Perret

1659368220

Explorer Plusieurs Fenêtres Dans .NET MAUI

Les multi-fenêtres sont une fonctionnalité intéressante dans .NET MAUI, et nous pouvons donner à leur version de bureau un TLC supplémentaire.

.NET MAUI est un outil merveilleux qui vous permet de créer des applications avec la même base de code commune pour les appareils de bureau et mobiles et peut être développé pour Android, iOS, macOS et Windows.

Certaines fonctionnalités sont plus utiles sur la version de bureau d'une application et nécessiteront donc une attention particulière. L'une de ces fonctionnalités est le multi-fenêtres. Les ordinateurs de bureau et les tablettes peuvent autoriser plusieurs fenêtres et vues lorsqu'une application est ouverte. Sur ces appareils, cette fonctionnalité a plus de poids et est plus nécessaire, mais nous pouvons également le faire sur les versions mobiles.

Points importants à souligner :

Applications de base dans une application de bureau : comme je l'ai mentionné précédemment, ces applications ont certaines fonctionnalités qui, bien qu'elles fonctionnent sur des appareils mobiles, ont plus de sens ici, par exemple la création de menus ou de multi-fenêtres.

En gardant à l'esprit le point précédent, le multi-fenêtrage est une fonctionnalité qui fonctionnera de la même manière pour n'importe quel appareil et plate-forme , sauf que vous en percevrez probablement davantage les avantages en l'utilisant dans des applications de bureau ou des appareils tels que les iPads qui sont plus grands .

Accueillons le multi-fenêtres ! 🎊

.NET MAUI multi-fenêtres

Ajout des paramètres de plates-formes nécessaires

Pour mettre en place plusieurs fenêtres, suivez les instructions ci-dessous :

Logo AppleiOS et macOS

Commençons par le Info.plist :

➖ Cliquez sur Dossier Plate-forme
➖ Cliquez sur Dossier iOS ou MacCatalyst (vous devez faire cette Plate-forme une par une)
➖ Info.plist
➖ Pour ouvrir : Double-cliquez ou cliquez sur Ouvrir avec… et sélectionnez l'outil

Ouvrir le Info.plist en suivant les étapes répertoriées ci-dessus.

Une fois le fichier ouvert, appliquez les étapes suivantes :

Étape 1 : Ajoutez le manifeste de la scène d'application. Une fois ajouté, vous aurez un résultat comme celui de l'image suivante.
Étape 1

Étape 2 : Définissez Activer plusieurs fenêtres avec OUI.
Étape 2

Étape 3 : Ajoutez le rôle de session d'application. Une fois ajouté, vous aurez un résultat comme celui de l'image suivante.
Étape 3

Étape 4 : Enfin, ajoutons ce qui suit :

  • Déléguez le nom de la classe avec la valeur SceneDelegate .
  • Nom de configuration avec la valeur MAUI_DEFAULT_SCENE_CONFIGURATION .

Compléter toutes les étapes de votre Info.plist vous donnera un résultat comme celui-ci.

Étape 4

Si vous l'ouvrez dans un éditeur de texte, cette partie de votre Info.plist devrait ressembler à ceci :

<key>UIApplicationSceneManifest</key>
    <dict>
     <key>UIApplicationSupportsMultipleScenes</key>
     <true/>
         <key>UISceneConfigurations</key>
     <dict>
    <key>UIWindowSceneSessionRoleApplication</key>
    <array>
	    <dict>   
		    <key>UISceneDelegateClassName</key>		    
		    <string>SceneDelegate</string>		    
		    <key>UISceneConfigurationName</key>		    
		    <string>__MAUI_DEFAULT_SCENE_CONFIGURATION__</string>    
	    </dict>
    </array>
</dict>
</dict>

Enfin, ajoutons la classe SceneDelegate.

Dans le même dossier iOS :

➖ Créer la classe
SceneDelegate ➖ Enregistrer un SceneDelegate avec [Register("SceneDelegate")]
➖ Hériter de la MauiUISceneDelegateclasse

Le résultat devrait ressembler à l'exemple de code suivant :

using Foundation;
using Microsoft.Maui;

namespace MultiWindowsSample;

[Register("SceneDelegate")]
public class SceneDelegate : MauiUISceneDelegate
{

}

⚠ Appliquez exactement les mêmes étapes dans le dossier MacCatalyst .

Windows et Androïd

Logo AndroidPour Android : Aucune configuration supplémentaire requise.

Logo WindowsPour Windows : Aucune configuration supplémentaire requise.

En savoir plus sur le multi-fenêtres

Le multi-fenêtrage vous aide à ouvrir toutes les fenêtres dont vous avez besoin dans votre application. Cette fonctionnalité a été annoncée dans Preview 11 de .NET MAUI .

Je vais vous expliquer les deux méthodes les plus importantes et les plus fondamentales pour gérer nos fenêtres, qui sont les fenêtres d'ouverture et de fermeture. Voyons voir !

🔓 Ouverture des fenêtres

Détaillons la méthode OpenWindows, qui est composée des éléments suivants :

  • Classe d'application : disponible dans Microsoft.Maui.Controlsuivi du .Current qui fait référence à l'instance de l'application en cours d'exécution.
  • Méthode OpenWindows : responsable de l'ouverture de la fenêtre, elle attend un Window Object.

L'explication graphique serait la suivante :

OpenWindows-Structure

Voyons ça en code :

void OnOpenWindowClicked(object sender, EventArgs e)
{
     Application.Current.OpenWindow(new Window(new MainPage()));
}

🔒 Fermeture des fenêtres

Détaillons la méthode CloseWindows , qui est composée des éléments suivants :

  • Application et Current ont les mêmes définitions que le point précédent.
  • La méthode CloseWindows est responsable de la fermeture de la fenêtre ; il attend un objet Window.
  • GetParentWindows : Cela vous aide à obtenir l'élément parent d'une page. Il est important de savoir que toutes les pages contiennent cette méthode.

Voyons ça en code :

void OnCloseWindowClicked(object sender, EventArgs e)
{
    var window = GetParentWindow();
    if (window is not null)
    Application.Current.CloseWindow(window);
}

XAML

<ScrollView>

    <VerticalStackLayout Spacing="25" VerticalOptions="Center">
    
	    <Image Source="dotnet_bot.png"
		       HeightRequest="200"
			   HorizontalOptions="Center" />
    
	    <Label Text="Let's explore Multi-Windows in .NET MAUI!"
		       FontSize="25"
		       HorizontalOptions="Center" />
    
	    <Button Text="Open Windows"
		        Clicked="OnOpenWindowClicked"
		        HorizontalOptions="Center" />
    
	    <Button Text="Close Windows"
		        Clicked="OnCloseWindowClicked"
			    HorizontalOptions="Center" />
    
    </VerticalStackLayout>
    
</ScrollView>

Enfin, c'est notre résultat incroyable! 😍

Animation multi-fenêtres

Et jetons un coup d'œil sur macOS. 😍

fermes

Emballer

Merci d'avoir lu! Rendez-vous dans le prochain post! 🙋‍♀️

Lien : https://www.telerik.com/blogs/exploring-multi-windows-dotnet-maui

#dotnet #dotnetmaui #csharp 

Explorer Plusieurs Fenêtres Dans .NET MAUI
Minh  Nguyet

Minh Nguyet

1659357360

Khám Phá đa Windows Trong .NET MAUI

Đa cửa sổ là một tính năng hay trong .NET MAUI và chúng tôi có thể cung cấp thêm TLC cho phiên bản máy tính để bàn của chúng.

.NET MAUI là một công cụ tuyệt vời cho phép bạn tạo các ứng dụng có cùng cơ sở mã chung cho cả máy tính để bàn và thiết bị di động và có thể được phát triển cho Android, iOS, macOS và Windows.

Một số tính năng hữu ích hơn trên phiên bản máy tính để bàn của một ứng dụng và do đó sẽ cần chú ý thêm. Một trong những chức năng như vậy là nhiều cửa sổ. Máy tính để bàn và máy tính bảng có thể cho phép nhiều cửa sổ và chế độ xem khi bạn mở ứng dụng. Trên các thiết bị này, chức năng này nặng hơn và cần thiết hơn, tuy nhiên chúng tôi cũng có thể thực hiện trên các phiên bản dành cho thiết bị di động.

Những điểm quan trọng cần làm nổi bật:

Các ứng dụng cơ bản trong ứng dụng dành cho máy tính để bàn: Như tôi đã đề cập trước đây, các ứng dụng này có một số tính năng, mặc dù chúng hoạt động trên thiết bị di động, ở đây có ý nghĩa hơn — ví dụ: tạo menu hoặc nhiều cửa sổ.

Hãy ghi nhớ điểm trước, đa cửa sổ là một chức năng sẽ hoạt động theo cùng một cách cho bất kỳ thiết bị và nền tảng nào , chỉ có điều là bạn có thể sẽ cảm nhận được nhiều lợi thế hơn khi sử dụng nó trong các ứng dụng máy tính để bàn hoặc các thiết bị như iPad lớn hơn .

Hãy chào đón nhiều cửa sổ! 🎊

.NET MAUI Đa Windows

Thêm cài đặt nền tảng cần thiết

Để triển khai nhiều cửa sổ, hãy làm theo hướng dẫn bên dưới:

Logo của AppleiOS và macOS

Hãy bắt đầu với Info.plist:

➖ Nhấp vào Thư mục Nền tảng
➖ Nhấp vào Thư mục iOS hoặc MacCatalyst (bạn phải thực hiện từng bước trên Nền tảng này)
➖ Info.plist
➖ Để mở: Nhấp đúp hoặc nhấp vào Mở bằng… và chọn công cụ

Mở Info.plist theo các bước được liệt kê ở trên.

Khi bạn mở tệp, hãy áp dụng các bước sau:

Bước 1: Thêm Tệp kê khai cảnh ứng dụng. Sau khi thêm vào, bạn sẽ có kết quả như hình sau.
Bước 1

Bước 2: Đặt Bật nhiều Windows với CÓ.
Bước 2

Bước 3: Thêm Vai trò Phiên ứng dụng. Sau khi thêm vào, bạn sẽ có kết quả như hình sau.
Bước 3

Bước 4: Cuối cùng, hãy thêm những điều sau:

  • Ủy quyền Tên lớp với giá trị SceneDelegate .
  • Tên cấu hình có giá trị MAUI_DEFAULT_SCENE_CONFIGURATION .

Hoàn thành tất cả các bước trong Info.plist của bạn sẽ cho bạn một kết quả như sau.

Bước 4

Nếu bạn mở nó trong một trình soạn thảo văn bản, phần này của Info.plist của bạn sẽ trông giống như sau:

<key>UIApplicationSceneManifest</key>
    <dict>
     <key>UIApplicationSupportsMultipleScenes</key>
     <true/>
         <key>UISceneConfigurations</key>
     <dict>
    <key>UIWindowSceneSessionRoleApplication</key>
    <array>
	    <dict>   
		    <key>UISceneDelegateClassName</key>		    
		    <string>SceneDelegate</string>		    
		    <key>UISceneConfigurationName</key>		    
		    <string>__MAUI_DEFAULT_SCENE_CONFIGURATION__</string>    
	    </dict>
    </array>
</dict>
</dict>

Cuối cùng, hãy thêm lớp SceneDelegate.

Trong cùng một Thư mục iOS:

➖ Tạo lớp
SceneDelegate ➖ Đăng ký một SceneDelegate với [Register("SceneDelegate")]
➖ Kế thừa từ MauiUISceneDelegatelớp

Kết quả sẽ giống như ví dụ mã sau:

using Foundation;
using Microsoft.Maui;

namespace MultiWindowsSample;

[Register("SceneDelegate")]
public class SceneDelegate : MauiUISceneDelegate
{

}

⚠ Áp dụng chính xác các bước tương tự trong Thư mục MacCatalyst .

Windows và Android

Logo AndroidĐối với Android : Không yêu cầu cấu hình bổ sung.

Logo WindowsĐối với Windows : Không yêu cầu cấu hình bổ sung.

Tìm hiểu thêm về Multi-Windows

Đa cửa sổ giúp bạn mở tất cả các cửa sổ bạn cần trong ứng dụng của mình. Chức năng này đã được công bố trong Bản xem trước 11 của .NET MAUI .

Tôi sẽ giải thích hai phương pháp quan trọng và cơ bản nhất để xử lý các cửa sổ của chúng ta, đó là Mở và Đóng cửa sổ — hãy cùng xem!

🔓 Mở Windows

Hãy trình bày chi tiết phương thức OpenWindows , được cấu tạo bởi những thứ sau:

  • Lớp ứng dụng : có sẵn, Microsoft.Maui.Controltheo sau là .Current đề cập đến phiên bản của Ứng dụng hiện đang chạy.
  • Phương thức OpenWindows : chịu trách nhiệm mở cửa sổ, nó mong đợi một Đối tượng Cửa sổ.

Giải thích bằng hình ảnh sẽ như sau:

Cấu trúc OpenWindows

Hãy xem nó trong mã:

void OnOpenWindowClicked(object sender, EventArgs e)
{
     Application.Current.OpenWindow(new Window(new MainPage()));
}

🔒 Đóng Windows

Hãy trình bày chi tiết phương thức CloseWindows , được tạo bởi như sau:

  • Ứng dụngHiện tại có cùng định nghĩa như điểm trước.
  • Phương thức CloseWindows chịu trách nhiệm đóng cửa sổ; nó mong đợi một Đối tượng Cửa sổ.
  • GetParentWindows : Điều này giúp bạn lấy phần tử mẹ của một trang. Điều quan trọng cần biết là tất cả các Trang đều chứa phương thức này.

Hãy xem nó trong mã:

void OnCloseWindowClicked(object sender, EventArgs e)
{
    var window = GetParentWindow();
    if (window is not null)
    Application.Current.CloseWindow(window);
}

XAML

<ScrollView>

    <VerticalStackLayout Spacing="25" VerticalOptions="Center">
    
	    <Image Source="dotnet_bot.png"
		       HeightRequest="200"
			   HorizontalOptions="Center" />
    
	    <Label Text="Let's explore Multi-Windows in .NET MAUI!"
		       FontSize="25"
		       HorizontalOptions="Center" />
    
	    <Button Text="Open Windows"
		        Clicked="OnOpenWindowClicked"
		        HorizontalOptions="Center" />
    
	    <Button Text="Close Windows"
		        Clicked="OnCloseWindowClicked"
			    HorizontalOptions="Center" />
    
    </VerticalStackLayout>
    
</ScrollView>

Cuối cùng, đây là kết quả tuyệt vời của chúng tôi! 😍

Hoạt ảnh MultiWindows

Và, hãy xem qua macOS. 😍

trang trại

Gói (lại

Cảm ơn vì đã đọc! Hẹn gặp lại các bạn trong những bài viết tiếp theo! 🙋‍♀️

Liên kết: https://www.telerik.com/blogs/exploring-multi-windows-dotnet-maui

#dotnet #dotnetmaui #csharp 

Khám Phá đa Windows Trong .NET MAUI

Изучение многооконности в .NET MAUI

Многооконный режим — это приятная функция в .NET MAUI, и мы можем предоставить их настольной версии дополнительный TLC.

.NET MAUI — замечательный инструмент, позволяющий создавать приложения с одинаковой общей кодовой базой как для настольных, так и для мобильных устройств, и может быть разработан для Android, iOS, macOS и Windows.

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

Важные моменты, которые следует выделить:

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

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

Приветствуем многооконность! 🎊

.NET MAUI для нескольких окон

Добавление необходимых настроек платформ

Чтобы реализовать многооконность, следуйте приведенным ниже инструкциям:

Логотип AppleiOS и macOS

Начнем с Info.plist:

➖ Нажмите на папку платформы
➖ Нажмите на папку iOS или MacCatalyst (вы должны делать эту платформу одну за другой)
➖ Info.plist
➖ Чтобы открыть: дважды щелкните или нажмите « Открыть с помощью… » и выберите инструмент

Откройте Info.plist, выполнив шаги, перечисленные выше.

Открыв файл, выполните следующие действия:

Шаг 1: Добавьте манифест сцены приложения. После добавления вы получите результат, подобный показанному на следующем изображении.
Шаг 1

Шаг 2. Установите для параметра «Включить несколько окон» значение «ДА».
Шаг 2

Шаг 3: Добавьте роль сеанса приложения. После добавления вы получите результат, подобный показанному на следующем изображении.
Шаг 3

Шаг 4: Наконец, добавим следующее:

  • Имя класса делегата со значением SceneDelegate .
  • Имя конфигурации со значением MAUI_DEFAULT_SCENE_CONFIGURATION .

Выполнение всех шагов в вашем Info.plist даст вам результат, подобный следующему.

Шаг 4

Если вы откроете его в текстовом редакторе, эта часть вашего Info.plist должна выглядеть так:

<key>UIApplicationSceneManifest</key>
    <dict>
     <key>UIApplicationSupportsMultipleScenes</key>
     <true/>
         <key>UISceneConfigurations</key>
     <dict>
    <key>UIWindowSceneSessionRoleApplication</key>
    <array>
	    <dict>   
		    <key>UISceneDelegateClassName</key>		    
		    <string>SceneDelegate</string>		    
		    <key>UISceneConfigurationName</key>		    
		    <string>__MAUI_DEFAULT_SCENE_CONFIGURATION__</string>    
	    </dict>
    </array>
</dict>
</dict>

Наконец, давайте добавим класс SceneDelegate.

В той же папке iOS:

➖ Создайте класс
SceneDelegate ➖ Зарегистрируйте SceneDelegate с помощью [Register("SceneDelegate")]
➖ Наследуется от MauiUISceneDelegateкласса

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

using Foundation;
using Microsoft.Maui;

namespace MultiWindowsSample;

[Register("SceneDelegate")]
public class SceneDelegate : MauiUISceneDelegate
{

}

⚠ Примените точно такие же шаги в папке MacCatalyst .

Windows и Android

Логотип AndroidДля Android : дополнительная настройка не требуется.

Логотип WindowsДля Windows : дополнительная настройка не требуется.

Узнайте больше о нескольких окнах

Многооконный режим помогает вам открывать все окна, которые вам нужны в вашем приложении. Эта функциональность была анонсирована в Preview 11 .NET MAUI .

Я объясню два наиболее важных и фундаментальных метода работы с нашими окнами, а именно «Открыть» и «Закрыть окна» — давайте посмотрим!

🔓 Открытие окон

Давайте подробно рассмотрим метод OpenWindows , который состоит из следующего:

  • Класс приложения : доступен Microsoft.Maui.Control, за которым следует .Current , который относится к экземпляру приложения, которое работает в данный момент.
  • Метод OpenWindows : отвечает за открытие окна, ожидает объект Window.

Графическое объяснение будет следующим:

OpenWindows-Структура

Давайте посмотрим на это в коде:

void OnOpenWindowClicked(object sender, EventArgs e)
{
     Application.Current.OpenWindow(new Window(new MainPage()));
}

🔒 Закрытие окон

Давайте подробно рассмотрим метод CloseWindows , который состоит из следующего:

  • Application и Current имеют те же определения, что и в предыдущем пункте.
  • Метод CloseWindows отвечает за закрытие окна; он ожидает объект окна.
  • GetParentWindows : это поможет вам получить родительский элемент страницы. Важно знать, что все страницы содержат этот метод.

Давайте посмотрим на это в коде:

void OnCloseWindowClicked(object sender, EventArgs e)
{
    var window = GetParentWindow();
    if (window is not null)
    Application.Current.CloseWindow(window);
}

XAML

<ScrollView>

    <VerticalStackLayout Spacing="25" VerticalOptions="Center">
    
	    <Image Source="dotnet_bot.png"
		       HeightRequest="200"
			   HorizontalOptions="Center" />
    
	    <Label Text="Let's explore Multi-Windows in .NET MAUI!"
		       FontSize="25"
		       HorizontalOptions="Center" />
    
	    <Button Text="Open Windows"
		        Clicked="OnOpenWindowClicked"
		        HorizontalOptions="Center" />
    
	    <Button Text="Close Windows"
		        Clicked="OnCloseWindowClicked"
			    HorizontalOptions="Center" />
    
    </VerticalStackLayout>
    
</ScrollView>

Наконец, это наш потрясающий результат! 😍

Многооконная анимация

И давайте посмотрим на macOS. 😍

фермы

Заворачивать

Спасибо за чтение! Увидимся в следующем посте! 🙋‍♀️

Ссылка: https://www.telerik.com/blogs/exploring-multi-windows-dotnet-maui

#dotnet #dotnetmaui #csharp 

Изучение многооконности в .NET MAUI
山田  千代

山田 千代

1659335621

在 .NET MAUI 中探索多窗口

多窗口是 .NET MAUI 中的一個不錯的功能,我們可以為其桌面版本提供額外的 TLC。

.NET MAUI 是一個很棒的工具,它允許您為桌面和移動設備創建具有相同通用代碼庫的應用程序,並且可以針對 Android、iOS、macOS 和 Windows 進行開發。

某些功能在應用程序的桌面版本上更有用,因此需要格外注意。一種這樣的功能是多窗口。當您打開應用程序時,台式機和平板電腦可以允許多個窗口和視圖。在這些設備上,這個功能更重要,也更必要,但我們也可以在移動版本上做到這一點。

需要強調的要點:

桌面應用程序中的基本應用程序:正如我之前提到的,這些應用程序具有一些功能,儘管它們可以在移動設備上運行,但在這裡更有意義——例如創建菜單或多窗口。

記住前一點,多窗口是一種在任何設備和平台上都可以以相同方式工作的功能,只是在桌面應用程序或更大的 iPad 等設備中使用它時,您可能會更多地感受到它的優勢.

讓我們歡迎多窗口!🎊

.NET MAUI 多窗口

添加所需的平台設置

要實現多窗口,請按照以下說明操作:

蘋果標誌iOS 和 macOS

讓我們從 Info.plist 開始:

➖ 點擊 Platform 文件夾
➖ 點擊 iOS 或 MacCatalyst 文件夾(必須一個一個地做這個 Platform)
➖ Info.plist
➖ 打開:雙擊或點擊Open With ...並選擇工具

按照上面列出的步驟打開 Info.plist。

打開文件後,應用以下步驟:

第 1 步:添加應用程序場景清單。添加後,您將獲得如下圖所示的結果。
步驟1

第 2 步:將“啟用多個窗口”設置為“是”。
第2步

第 3 步:添加應用程序會話角色。添加後,您將獲得如下圖所示的結果。
第 3 步

第4步:最後,讓我們添加以下內容:

  • 具有SceneDelegate值的委託類名稱。
  • 具有MAUI_DEFAULT_SCENE_CONFIGURATION值的配置名稱。

完成Info.plist 中的所有步驟將為您提供如下結果。

第4步

如果您在文本編輯器中打開它,您的 Info.plist 的這一部分應該如下所示:

<key>UIApplicationSceneManifest</key>
    <dict>
     <key>UIApplicationSupportsMultipleScenes</key>
     <true/>
         <key>UISceneConfigurations</key>
     <dict>
    <key>UIWindowSceneSessionRoleApplication</key>
    <array>
	    <dict>   
		    <key>UISceneDelegateClassName</key>		    
		    <string>SceneDelegate</string>		    
		    <key>UISceneConfigurationName</key>		    
		    <string>__MAUI_DEFAULT_SCENE_CONFIGURATION__</string>    
	    </dict>
    </array>
</dict>
</dict>

最後,讓我們添加 SceneDelegate 類。

在同一個 iOS 文件夾中:

➖ 創建 SceneDelegate 類
➖ 註冊一個 SceneDelegate [Register("SceneDelegate")]
➖ 從MauiUISceneDelegate類繼承

結果應類似於以下代碼示例:

using Foundation;
using Microsoft.Maui;

namespace MultiWindowsSample;

[Register("SceneDelegate")]
public class SceneDelegate : MauiUISceneDelegate
{

}

⚠ 在MacCatalyst文件夾中應用完全相同的步驟。

Windows 和安卓

安卓標誌對於Android:無需額外配置。

Windows 徽標對於Windows:無需額外配置。

了解有關多窗口的更多信息

多窗口可幫助您打開應用程序中所需的所有窗口。此功能在.NET MAUI 的 Preview 11 中宣布。

我將解釋處理我們的窗口的兩種最重要和最基本的方法,即打開和關閉窗口——讓我們看看!

🔓 打開窗戶

讓我們詳細介紹一下OpenWindows方法,它由以下部分組成:

  • 應用程序類:可用在Microsoft.Maui.Control後面跟著.Current,它指的是當前正在運行的應用程序的實例。
  • OpenWindows方法:負責打開窗口,它需要一個 Window 對象。

圖形解釋如下:

OpenWindows-結構

讓我們在代碼中看到它:

void OnOpenWindowClicked(object sender, EventArgs e)
{
     Application.Current.OpenWindow(new Window(new MainPage()));
}

🔒 關閉窗戶

讓我們詳細介紹一下CloseWindows方法,它由以下部分組成:

  • ApplicationCurrent的定義與前一點相同。
  • CloseWindows方法負責關閉窗口;它需要一個窗口對象。
  • GetParentWindows:這可以幫助您獲取頁面的父元素。重要的是要知道所有頁面都包含此方法。

讓我們在代碼中看到它:

void OnCloseWindowClicked(object sender, EventArgs e)
{
    var window = GetParentWindow();
    if (window is not null)
    Application.Current.CloseWindow(window);
}

XAML

<ScrollView>

    <VerticalStackLayout Spacing="25" VerticalOptions="Center">
    
	    <Image Source="dotnet_bot.png"
		       HeightRequest="200"
			   HorizontalOptions="Center" />
    
	    <Label Text="Let's explore Multi-Windows in .NET MAUI!"
		       FontSize="25"
		       HorizontalOptions="Center" />
    
	    <Button Text="Open Windows"
		        Clicked="OnOpenWindowClicked"
		        HorizontalOptions="Center" />
    
	    <Button Text="Close Windows"
		        Clicked="OnCloseWindowClicked"
			    HorizontalOptions="Center" />
    
    </VerticalStackLayout>
    
</ScrollView>

最後,這是我們驚人的結果!😍

多窗口動畫

而且,讓我們看看 macOS。😍

農舍

包起來

謝謝閱讀!下一篇文章見!🙋‍♀️

鏈接:https ://www.telerik.com/blogs/exploring-multi-windows-dotnet-maui

#dotnet #dotnetmaui #csharp 

在 .NET MAUI 中探索多窗口
Rowena  Cox

Rowena Cox

1654587420

Final Tips, Pointers and How To Learn More with .NET Maui

This video is part of a crash course to build your first .NET MAUI app. You have done it! Congratulations! You have built your very first .NET MAUI app and have grasped the basics of mobile and desktop development. Before you go, let me give you some hints on where to learn more and also, don't forget to pick up your very special surprise!

🔗 Links
.NET MAUI on Microsoft Learn: https://docs.microsoft.com/learn/paths/build-apps-with-dotnet-maui/
Planet Xamarin: https://planetxamarin.com
.NET MAUI Docs: https://docs.microsoft.com/dotnet/maui/

Workshop Repository: https://github.com/jfversluis/dotnet-maui-workshop

.NET MAUI Crash Course Playlist: 

⏱ Timestamps
00:00 - Congrats on Your First .NET MAUI App!
00:18 - Thank You and Learnings...
01:57 - .NET MAUI on Microsoft Learn
02:37 - The Amazing .NET MAUI Community!
04:01 - Check out the Microsoft Docs
05:06 - Add Suggestions in the Comments
05:57 - Last Code Tips for Monkey Finder
06:36 - OnPlatform, OnIdiom and ValueConverters
10:22 - Fix the Geolocation "Bug"
12:01 - Claim Your Reward, Be Proud and Share!

 #dotnetmaui #maui  #dotnet6

Final Tips, Pointers and How To Learn More with .NET Maui
Rowena  Cox

Rowena Cox

1654544100

Styling, Theming and Dark Mode Support with .NET MAUI

This video is part of a crash course to build your first .NET MAUI app. Our app is pretty much complete, except for 1 important thing: Dark Mode support! In this video we will learn about all the different styling and theming options in .NET MAUI. What are StaticResources, DynamicResources, how to define styles and how to implement light theme and dark theme support. You'll learn all this and more!

🔗 Links
.NET MAUI ResourceDictionary Docs: https://docs.microsoft.com/dotnet/maui/fundamentals/resource-dictionaries
.NET MAUI Docs: https://docs.microsoft.com/dotnet/maui/
Workshop Repository: https://github.com/jfversluis/dotnet-maui-workshop

.NET MAUI Crash Course Playlist: 

⏱ Timestamps
00:00 - .NET MAUI App Themes
01:09 - Styles.xaml in a New .NET MAUI App
03:07 - Explore .NET MAUI ResourceDictionary
05:56 - Styles in .NET MAUI
08:29 - Implicit vs Explicit Styles
10:02 - Add Dark Theme Support in .NET MAUI
16:15 - Don't Miss the Last Video!

 #dotnetmaui #maui  #dotnet6

Styling, Theming and Dark Mode Support  with .NET MAUI
Rowena  Cox

Rowena Cox

1654500840

Pull-To-Refresh, EmptyView and Layouts with CollectionView

This video is part of a crash course to build your first .NET MAUI app. In an earlier video we already implemented the CollectionView, but it's time to have a closer look. For this video, we will learn how to implement pull-to-refresh, see how to make clear to the users there is no data with EmptyView and explore different layouts that are available to CollectionView.

🔗 Links
.NET MAUI CollectionView Docs: https://docs.microsoft.com/dotnet/maui/user-interface/controls/collectionview/
.NET MAUI Docs: https://docs.microsoft.com/dotnet/maui/

Workshop Repository: https://github.com/jfversluis/dotnet-maui-workshop

.NET MAUI Crash Course Playlist: 

⏱ Timestamps
00:00 - .NET MAUI CollectionView
00:22 - What is CollectionView? And CarouselView?
03:02 - Implement Pull-To-Refresh with RefreshView
07:52 - Different CollectionView Layouts: Grid, Linear, Custom?
10:31 - CollectionView SelectionMode
11:19 - No Data? No Problem with EmptyView!
15:07 - Wrap-Up; Next Episode: App Theming!

#dotnetmaui #maui  #dotnet6

Pull-To-Refresh, EmptyView and Layouts with CollectionView
Rowena  Cox

Rowena Cox

1654457520

Using Platform Features and Device Sensors with .NET Maui

This video is part of a crash course to build your first .NET MAUI app. For this video we will be looking at using platform features and accessing device sensors. More specifically: we will be using the .NET MAUI Geolocation APIs to determine our users location and open the default Maps app.

🔗 Links
.NET MAUI Docs: https://docs.microsoft.com/dotnet/maui/

Workshop Repository: https://github.com/jfversluis/dotnet-maui-workshop

.NET MAUI Crash Course Playlist: 

⏱ Timestamps
00:00 - .NET MAUI Platform Features
00:25 - What Happened to Essentials?!
03:55 - Add Geolocation APIs
05:01 - A Deeper Dive Into Dependency Injection
07:24 - Implement Geolocation Functionality
14:28 - How To Handle Permissions
20:23 - Implement Opening Default Maps App
25:34 - Wrapping Up/iDevice Notch Platform-Specific

#dotnetmaui #maui  #dotnet6

Using Platform Features and Device Sensors with .NET Maui
Rowena  Cox

Rowena Cox

1654414200

Implement Navigation with .NET MAUI Shell

This video is part of a crash course to build your first .NET MAUI app. With our overview of monkeys in place, we now want to see the details of 1 monkey. For this we are going to implement navigation in our app and also see how to pass complex objects from one page to another.

🔗 Links
.NET MAUI Shell Docs: https://docs.microsoft.com/dotnet/maui/fundamentals/shell/
.NET MAUI Docs: https://docs.microsoft.com/dotnet/maui/

Workshop Repository: https://github.com/jfversluis/dotnet-maui-workshop

.NET MAUI Crash Course Playlist: 

⏱ Timestamps
00:00 - .NET MAUI Navigation
00:16 - What is .NET MAUI Shell?
02:52 - Time for Code!
04:09 - Note About Android Developer Mode
05:32 - Implement TapGestureRecognizer
07:01 - Implement Navigation with Complex Objects
12:00 - Implement Navigation UI
18:48 - Setup Navigation Routing
21:46 - Running the Android App
23:29 - Wrap-up and What's Next?

#dotnetmaui #maui  #dotnet6

Implement Navigation with .NET MAUI Shell
Rowena  Cox

Rowena Cox

1654327680

Implement MVVM and Databinding with .NET MAUI

This video is part of a crash course to build your first .NET MAUI app. In the previous video we populated our CollectionView with static data. Time to change that! In this video we will get JSON data from a remote source, deserialize that and while doing we will learn all about MVVM, data binding and dependency injection so that our code stays clean and perfectly maintainable!

🔗 Links
.NET MAUI Data Binding Docs: https://docs.microsoft.com/dotnet/maui/fundamentals/data-binding/
.NET MAUI Docs: https://docs.microsoft.com/dotnet/maui/

Workshop Repository: https://github.com/jfversluis/dotnet-maui-workshop

.NET MAUI Crash Course Playlist: 

⏱ Timestamps
00:00 - .NET MAUI Add MVVM To Our App
00:12 - What is MVVM?
06:17 - Implement INotifyPropertyChanged
10:35 - Add Bindable Properties to BaseViewModel
14:50 - Retrieve JSON Data from Remote Source
18:21 - Load JSON From App Resources
19:31 - Implement MonkeysViewModel
21:09 - View Model Dependency Injection (Constructor)
26:21 - Execute Logic in MVVM with Commands
28:35 - Implement the Improved View
30:24 - Implement Data-Binding
41:34 - Make Your MVVM Life Easier with CommunityToolkit.Mvvm

#dotnetmaui #maui  #dotnet6 

Implement MVVM and Databinding with .NET MAUI
Rowena  Cox

Rowena Cox

1654284060

Display Rich Data with CollectionView

This video is part of a crash course to build your first .NET MAUI app. No time to monkey around, in this video we will dive right in! You will see how to turn JSON into a C# model and with that model we will populate a CollectionView and make sure we display data nicely by using a DataTemplate.

🔗 Links
.NET MAUI CollectionView Docs: https://docs.microsoft.com/dotnet/maui/user-interface/controls/collectionview/
.NET MAUI Multibinding Docs: https://docs.microsoft.com/dotnet/maui/fundamentals/data-binding/multibinding
.NET MAUI Docs: https://docs.microsoft.com/dotnet/maui/

Workshop Repository: https://github.com/jfversluis/dotnet-maui-workshop

.NET MAUI Crash Course Playlist: 

⏱ Timestamps
00:00 - .NET MAUI Display Rich Data
00:50 - MonkeyFinder Repository
02:59 - Explore MonkeyFinder Project in Visual Studio
03:57 - Implement Model Object to Display
06:50 - Implement CollectionView
14:37 - Well Done!

#dotnetmaui #maui  #dotnet6

Display Rich Data with CollectionView
Rowena  Cox

Rowena Cox

1654240680

.NET MAUI Project Structure/Single Project

This video is part of a crash course to build your first .NET MAUI app. Before we really get to the code, let me explain to you the .NET MAUI single project approach. Single projects give us a lot of advantages like not having to repeat resources like images and fonts. After watching this video, you'll feel comfortable with the .NET MAUI project structure and you're ready to code!

🔗 Links
.NET MAUI Single Project Docs: https://docs.microsoft.com/dotnet/maui/fundamentals/single-project
.NET MAUI Docs: https://docs.microsoft.com/dotnet/maui/

Workshop Repository: https://github.com/jfversluis/dotnet-maui-workshop

.NET MAUI Crash Course Playlist: 

⏱ Timestamps
00:00 - .NET MAUI Single Project Approach
00:12 - .NET MAUI Crash Course
00:44 - What is Single Project?
02:46 - Explore Single Project in Visual Studio
03:57 - Platform-Specifics
05:22 - Working with Resources: Images, Fonts, etc.
07:29 - Inspect the Single-Project csproj
10:14 - MauiIcon, MauiSplashScreen, MauiFont, etc.
13:56 - MauiProgram Structure: .NET Generic Host
15:35 - .NET MAUI Shell

#dotnetmaui #maui  #dotnet6 

.NET MAUI Project Structure/Single Project
Code  Geek

Code Geek

1654226987

.NET MAUI Full Course for Beginners | Build cross-platform apps in C#

Let's start our journey together to build beautiful native cross-platform apps for iOS, Android, macOS, and Windows with .NET MAUI, C#, and Visual Studio! In this full workshop, I will walk you through everything you need to know about .NET MAUI and building your very first app. You will learn the basics including how to build user interfaces with XAML, how MVVM and data binding simplify development, how to navigate between pages, access platform features like geolocation, optimize data collections, and theme your app for light theme and dark theme. This course has everything you need to learn the basics and set you up for success when building apps with .NET MAUI!

Chapters:
00:00:00 - Intro to the .NET MAUI Workshop
00:04:10 - What is .NET MAUI & How to Install
00:06:25 - Workshop overview
00:08:00 - First .NET MAUI app & Architecture (slides)
00:21:40 - Get code to build your first .NET MAUI app
00:25:00 - .NET MAUI Project Walkthrough
00:29:40 - Start to build first .NET MAUI app
00:56:48 - Intro to MVVM (slides)
01:09:30 - Implementing INotifyPropertyChanged
01:22:30 - .NET Community Toolkit for MVVM (Source Generators)
01:32:30 - HTTP REST Calls & JSON Deserialization
01:43:00 - ICommand in .NET MAUI
01:59:30 - Create our UI with XAML & MVVM
02:16:20 - Navigation in .NET MAUI (slides)
02:25:20 - Implementing Navigation in .NET MAUI & Passing Parameters
02:46:00 - Building a details UI with XAML & MVVM
02:54:10 - Modal, Back Navigation, & More
02:58:20 - Access Platform APIs in .NET MAUI (slides)
03:02:53 - Platform API Integration - Connectivity
03:08:30 - Geolocation & Permissions Implementation
03:18:50 - Open Map Integration
03:22:40 - Platform Specifics - iOS Safe Area
03:25:50 - CollectionView & RefreshView Overview (slides)
03:34:00 - Implementing Pull-to-Refresh
03:40:00 - CollectionView Layouts - Grids and more
03:41:30 - CollectionView EmptyView
03:45:00 - App Resources, Styles, and Themes (slides)
03:56:20 - Implementing Light & Dark Mode
04:06:00 - Thanks, wrap-up, and resources

Links:
- .NET MAUI Workshop: https://aka.ms/maui-workshop
- .NET MAUI Website: https://dotnet.microsoft.com/apps/maui?WT.mc_id=friends-0000-jamont
- .NET MAUI Docs: https://docs.microsoft.com/dotnet/maui/?WT.mc_id=friends-0000-jamont
- .NET MAUI on Microsoft Learn: https://docs.microsoft.com/learn/paths/build-apps-with-dotnet-maui/?WT.mc_id=friends-0000-jamont
- .NET MAUI Community Toolkit: https://github.com/communitytoolkit/maui?WT.mc_id=friends-0000-jamont
- .NET Community Toolkit: https://github.com/communitytoolkit/dotnet?WT.mc_id=friends-0000-jamont

Subscribe: https://www.youtube.com/c/JamesMontemagno/featured 

#dotnetmaui  #dotnet   #ios  #android  #windows 

.NET MAUI Full Course for Beginners | Build cross-platform apps in C#
Rowena  Cox

Rowena Cox

1654197360

Setup Your .NET MAUI Dev Environment

This video is part of a crash course to build your first .NET MAUI app. In this video we are going to install Visual Studio 2022 and the .NET MAUI workload. From there we will proceed to setup an Android emulator, see how to enable Developer Mode on Windows 11 and even how to connect to a Mac build host. After this video you'll be ready for .NET MAUI development!

🔗 Links
.NET MAUI Docs: https://docs.microsoft.com/dotnet/maui/
.NET MAUI Crash Course Playlist: 

Workshop Repository: https://github.com/jfversluis/dotnet-maui-workshop

Download Visual Studio: https://visualstudio.microsoft.com
Android Emulator Docs: https://docs.microsoft.com/xamarin/android/get-started/installation/android-emulator/
Setup Mac Build Host Docs: https://docs.microsoft.com/xamarin/ios/get-started/installation/windows/connecting-to-mac/
Windows Enable Developer Mode: https://docs.microsoft.com/windows/apps/get-started/enable-your-device-for-development

⏱ Timestamps
00:00 - Setup Your .NET MAUI Dev Environment
00:39 - A Note About Previews and Releases
01:57 - Install Visual Studio (FREE Version!)
04:40 - Create Your First .NET MAUI Project
07:39 - Setup Android Emulator
09:28 - Android Emulator Performance
10:27 - Enable Hyper-V Support
12:42 - Enable Windows Developer Mode
14:56 - What About iOS and macOS?
16:39 - Setup Mac Build Host for iOS Development
20:55 - Explore the Android Emulator
27:14 - What Did We Learn?

#dotnetmaui #maui  #dotnet6 

Setup Your .NET MAUI Dev Environment