Fractionnement de l’interface WPF sur plusieurs fichiers Xaml

J’essaie de créer une interface utilisateur en utilisant XAML. Cependant, le fichier devient rapidement très volumineux et difficile à utiliser. Quelle est la meilleure façon de le diviser en plusieurs fichiers.

Je voudrais pouvoir définir le contenu d’un élément tel qu’un ComboBox sur un élément défini dans un fichier xaml différent (mais dans le même projet VS).

Merci

Vous pouvez diviser une grande interface utilisateur en définissant UserControls.

Cliquez avec le bouton droit sur l’arborescence des solutions, choisissez Ajouter-> Nouvel élément … puis Contrôle de l’utilisateur. Vous pouvez concevoir cela de la manière habituelle.

Vous pouvez ensuite référencer votre contrôle utilisateur dans XAML en utilisant une déclaration d’espace de noms. Disons que vous voulez inclure votre UserControl dans une fenêtre. Dans l’exemple suivant, j’ai ajouté un UserControl nommé “Foo” à l’espace de noms “YourCompany.Controls”:

  

Pour votre exemple spécifique, vous utiliseriez votre contrôle utilisateur dans une zone de liste déroulante en définissant un object DataTemplate affichant les données dans votre contrôle utilisateur.

Vous pouvez diviser les fichiers XAML en utilisant un ResourceDictionary . Le ResourceDictionary peut être utilisé pour fusionner d’autres fichiers:

         

Dans le ResourceDictionary, vous pouvez également déclarer des styles que vous pouvez utiliser sur vos éléments, de sorte que le fichier XAML principal soit plus petit.

Une autre possibilité pour obtenir un fichier XAML plus petit consiste à définir vos propres contrôles que vous utiliserez ensuite dans votre application principale.

Vous pouvez également créer une page au lieu d’un UserControl . Une Page peut être hébergée par la Window ou par un cadre . Recherchez les avantages et inconvénients d’une page vs UserControl. Cela dépend un peu de vos exigences en matière de navigation, ce qui répondra le mieux à vos besoins.

Voici un exemple d’utilisation d’une page dans un cadre.

Utilisez les styles et les contrôles utilisateur. Divisez votre interface en parties plus petites et codez-les dans un autre fichier xaml. Exemple:




...

..

divisez-le en trois fichiers xaml:
Window.xaml – ce sera la fenêtre
VeryBigControl.xaml – ce sera le UserControl
VeryBigControlStyle.xaml – ce sera le dictionnaire de ressources
etc 🙂