Dot.Blog

C#, XAML, WinUI, WPF, Android, MAUI, IoT, IA, ChatGPT, Prompt Engineering

Optimiser la Taille et la Position de Votre Fenêtre sous MAUI sur PC et Mac Catalyst

MAUI ne se limite pas à la création d'applications pour smartphones. Sur PC ou Mac, l'application fonctionne dans une fenêtre qui doit être correctement gérée...

Aujourd'hui, je vous propose d'explorer comment fixer la taille et la position d'une fenêtre lorsque votre application MAUI s'exécute sur un PC ou un Mac, y compris Mac Catalyst. Nous aborderons la classe Window mais également la stratégie d'utilisation de l'interface IWindowCreator

Introduction : Maîtriser la Fenêtre d'Application avec MAUI

Lorsque vous développez une application sous .NET MAUI (Multi-platform App UI), il est essentiel de savoir comment manipuler les fenêtres, en particulier sur des plateformes de bureau comme Windows, macOS, et Mac Catalyst. En effet, une bonne gestion de la taille et de la position des fenêtres peut grandement améliorer l'expérience utilisateur. Dans cet article, je vais vous expliquer en détail comment configurer la taille et la position d'une fenêtre sous MAUI, ainsi que la stratégie derrière l'interface IWindowCreator.

Configurer la Taille et la Position d'une Fenêtre sous MAUI

Avec .NET MAUI, la gestion des fenêtres sur des plateformes de bureau est à la fois puissante et flexible. La classe Window vous permet de contrôler différents aspects de la fenêtre de votre application. Fixer la taille et la position d'une fenêtre sous MAUI nécessite d'accéder à la méthode CreateWindow au sein de votre classe d'application.

Définir la Taille de la Fenêtre

Pour ajuster la taille de la fenêtre, vous devez interagir avec les propriétés Width et Height de l'objet IWindow. Voici comment vous pouvez configurer ces paramètres dans votre code :


    public class MyApp : Application
    {
        protected override Window CreateWindow(IActivationState activationState)
        {
            var window = new Window(new MainPage())
            {
                Width = 1024,
                Height = 768
            };
            return window;
        }
    }
   

Dans cet exemple, nous définissons la largeur et la hauteur de la fenêtre respectivement à 1024 et 768 pixels. Ces dimensions seront appliquées lorsque l'application sera exécutée sur un PC ou un Mac.

Positionner la Fenêtre sur l'Écran

En plus de la taille, vous pouvez également définir la position de la fenêtre sur l'écran. Ceci est particulièrement utile si vous souhaitez que votre application s'ouvre à un emplacement spécifique. Cela se fait via les propriétés X et Y de l'objet IWindow :


    public class MyApp : Application
    {
        protected override Window CreateWindow(IActivationState activationState)
        {
            var window = new Window(new MainPage())
            {
                X = 100,
                Y = 200
            };
            return window;
        }
    }
   

Dans cet exemple, la fenêtre sera positionnée à 100 pixels du bord gauche de l'écran et à 200 pixels du bord supérieur.

Gestion des Fenêtres sous Mac Catalyst : Une Approche Spécifique

Lors du développement d'applications pour macOS à l'aide de .NET MAUI, il est important de prendre en compte Mac Catalyst, une technologie qui permet aux applications iOS d'être portées sur macOS. Cette section explique comment ajuster les fenêtres lorsque votre application MAUI est déployée sur Mac Catalyst.

Limitations de Mac Catalyst

Mac Catalyst ne prend pas en charge le redimensionnement ou le repositionnement des fenêtres de manière programmatique. Cependant, il existe une solution de contournement pour permettre le redimensionnement en définissant les propriétés MinimumWidth et MaximumWidth à la largeur souhaitée de la fenêtre, ainsi que les propriétés MinimumHeight et MaximumHeight à la hauteur souhaitée de la fenêtre. Cela déclenchera un redimensionnement, après quoi vous pouvez rétablir les propriétés à leurs valeurs initiales.


    Window.MinimumWidth = 700;
    Window.MaximumWidth = 700;
    Window.MinimumHeight = 500;
    Window.MaximumHeight = 500;

    // Donner le temps à la fenêtre de se redimensionner
    Dispatcher.Dispatch(() =>
    {
        Window.MinimumWidth = 0;
        Window.MinimumHeight = 0;
        Window.MaximumWidth = double.PositiveInfinity;
        Window.MaximumHeight = double.PositiveInfinity;
    });
   

Personnalisation Avancée avec Mac Catalyst

Bien que Mac Catalyst limite certaines fonctionnalités disponibles pour les applications purement macOS, il offre néanmoins une bonne flexibilité pour adapter votre application aux attentes des utilisateurs de macOS. Par exemple, il est possible de gérer des événements de fenêtre spécifiques à macOS ou de tirer parti de l'espace de travail étendu que propose macOS en comparant le comportement de la fenêtre avec d'autres plateformes.

En utilisant ces techniques, vous pouvez faire en sorte que votre application MAUI sous Mac Catalyst ne soit pas seulement fonctionnelle, mais également cohérente avec l'expérience utilisateur attendue sur macOS.

Stratégie du IWindowCreator : Une Approche Modulaire

Le concept de IWindowCreator est essentiel pour une gestion plus modulaire des fenêtres dans les applications MAUI. Cette interface vous permet de créer des fenêtres de manière plus flexible, en particulier dans des applications complexes où plusieurs fenêtres peuvent être nécessaires.

Comprendre IWindowCreator

L'interface IWindowCreator permet de centraliser la création des fenêtres, ce qui facilite la gestion de différents types de fenêtres dans une application. Par exemple, dans une application multi-fenêtres, chaque fenêtre peut avoir des caractéristiques spécifiques (taille, position, contenu) définies par des implémentations distinctes de l'interface IWindowCreator.


    public class MyWindowCreator : IWindowCreator
    {
        public Window CreateWindow(IActivationState activationState)
        {
            return new Window(new MainPage())
            {
                Width = 1280,
                Height = 720,
                X = 50,
                Y = 50
            };
        }
    }
   

Avec cette implémentation, la fenêtre créée aura toujours une taille de 1280x720 pixels et sera positionnée à 50 pixels du bord gauche et du bord supérieur de l'écran.

Conclusion

La maîtrise de la gestion des fenêtres sous MAUI, que ce soit pour en fixer la taille ou la position, est une compétence clé pour les développeurs d'applications de bureau. Grâce à la classe Window, à l'interface IWindowCreator, et à la gestion spécifique sous Mac Catalyst, vous pouvez offrir une expérience utilisateur fluide et personnalisée. Pour plus d'informations et des exemples plus détaillés, je vous recommande de consulter la documentation officielle de MAUI.

En appliquant ces concepts, vous serez en mesure de créer des applications robustes et user-friendly, optimisées pour les environnements de bureau sur PC et Mac, tout en tirant parti du potentiel offert par Mac Catalyst.

Stay Tuned !

Faites des heureux, PARTAGEZ l'article !