Partager via


Comment : gérer les fichiers XAML volumineux

Le langage XAML permet de représenter des structures de données complexes. Par conséquent, certains fichiers XAML peuvent devenir très volumineux. Par exemple, la taille d'une représentation XAML d'une image vectorielle peut atteindre plusieurs mégaoctets. Les fichiers XAML volumineux peuvent provoquer des problèmes de performances dans le Concepteur WPF pour Visual Studio. Les procédures suivantes permettent de gérer les problèmes de performances provoqués par des blocs volumineux de code XAML.

Mode XAML uniquement

Pour améliorer les performances lorsque vous utilisez des fichiers XAML volumineux dans Visual Studio, il est recommandé de ne pas utiliser le mode Design dans le Concepteur WPF. Il existe deux approches que vous pouvez utiliser pour modifier du code XAML dans Visual Studio sans utiliser le mode Design.

La première approche consiste à désactiver le mode Design et à utiliser le mode XAML uniquement. Vous pouvez spécifier que les fichiers XAML doivent être ouverts uniquement en mode XAML plein écran en modifiant une option Éditeur de texte. Grâce à cette approche, vous disposez de la prise en charge complète de la modification XAML, de la fenêtre Structure du document et du navigateur des balises.

La seconde approche consiste à utiliser l'éditeur de code source. Vous pouvez ouvrir des fichiers XAML dans l'éditeur de code source à l'aide de la boîte de dialogue Ouvrir avec. Il s'agit de l'approche la plus légère qui fournit les meilleures performances pour les fichiers XAML volumineux. Vous disposez de la prise en charge complète de la modification XAML, mais la fenêtre Structure du document et le navigateur des balises ne sont pas visibles.

Pour ouvrir des fichiers XAML en mode XAML plein écran

Pour ouvrir des fichiers XAML dans l'éditeur de code source

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier XAML à ouvrir.

  2. Dans le menu contextuel, sélectionnez Ouvrir avec.

  3. Dans la boîte de dialogue Ouvrir avec, sélectionnez Éditeur du code source (texte), puis cliquez sur OK.

    Le fichier XAML s'ouvre dans l'éditeur de code.

Mode Design

Le mode Design vous permet d'utiliser des blocs volumineux de code XAML, mais vous risquez alors de rencontrer des problèmes de performances. Suivez les suggestions ci-dessous pour améliorer les performances.

Pour améliorer les performances du mode Design avec des blocs volumineux de code XAML

  • Déplacez votre bloc de code XAML volumineux dans un UserControl distinct. Grâce à cette approche, vous pouvez ajouter votre fichier XAML volumineux sur l'aire de conception avec un impact minime sur les performances.

  • Déplacez votre bloc de code XAML volumineux dans un fichier de ressources XAML. Si ce fichier de ressources est associé à un contrôle personnalisé, le fichier XAML volumineux n'est chargé que lorsque le concepteur ouvre le contrôle personnalisé.

  • Restructurez le code XAML afin de réduire les mises à jour qui incluent le bloc volumineux de code XAML.

    L'exemple de code suivant illustre un élément Canvas contenant un bloc volumineux de code XAML qui décrit une image. La modification d'un contrôle bouton frère entraîne la mise à jour de la grille parente et de tous ses enfants. La mise à jour de l'élément Canvas avec un bloc volumineux de code XAML risque de diminuer les performances.

    <Window x:Class="WpfApplication1.MainWindow"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="300" Width="300">
        <Grid>
            <Canvas>
                <!-- Many paths describing an image. -->
            </Canvas>
            <Button />
            <Button />
            <Button />
        </Grid>
    </Window>
    

    Le code suivant indique comment restructurer le code XAML précédent pour éviter les problèmes de performances.

    <Window x:Class="WpfApplication2.MainWindow"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="300" Width="300">
        <Grid>
            <Canvas>
                <!-- Many paths describing an image. -->
            </Canvas>
    
            <Grid>
                <Button />
                <Button />
                <Button />
            </Grid>
        </Grid>
    </Window>
    

    Les contrôles bouton ne sont plus frères de l'élément Canvas et la modification d'un bouton n'entraîne plus la mise à jour de l'élément Canvas.

Voir aussi

Référence

Mise en forme, XAML, Éditeur de texte, boîte de dialogue Options

Concepts

Dépannage des erreurs de chargement des concepteurs WPF et Silverlight

Autres ressources

XAML et code dans le Concepteur WPF

Débogage et interprétation d'erreurs dans le Concepteur WPF