Condividi tramite


Procedura: gestire file XAML di grandi dimensioni

Il linguaggio XAML è in grado di rappresentare strutture di dati complesse. Ne consegue che alcuni file XAML possono diventare molto grandi. Ad esempio, una rappresentazione XAML di un'immagine vettoriale può avere una dimensione di numerosi megabyte. I file XAML di grandi dimensioni possono causare problemi di prestazioni in WPF Designer per Visual Studio. Le procedure descritte di seguito consentono di gestire i problemi di prestazioni causati da grandi blocchi di XAML.

Solo in visualizzazione XAML

Il metodo migliore per aumentare le prestazioni quando si lavora con file XAML di grandi dimensioni in Visual Studio consiste nel non utilizzare la visualizzazione Progettazione in WPF Designer. Esistono due approcci che possono essere utilizzati per modificare il codice XAML in Visual Studio senza utilizzare la visualizzazione Progettazione.

Il primo approccio consiste nel disattivare la visualizzazione Progettazione e utilizzare solo la visualizzazione XAML. È possibile specificare che i file XAML vengano aperti solo in visualizzazione XAML completa modificando un'opzione dell'Editor di testo. Questo approccio consente di disporre del supporto completo di modifica XAML, della finestra Struttura documento e della struttura tag.

Il secondo approccio consiste nell'utilizzare l'editor del codice sorgente. È possibile aprire i file XAML nell'editor del codice sorgente utilizzando la finestra di dialogo Apri con. Quest'ultimo è l'approccio più leggero e offre le prestazioni migliori per i file XAML di grandi dimensioni. Questo approccio consente di disporre del supporto completo di modifica XAML, ma la finestra Struttura documento e la struttura tag non sono visibili.

Per aprire file XAML in visualizzazione XAML completa

Per aprire file XAML nell'editor del codice sorgente.

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul file XAML per aprirlo.

  2. Dal menu di scelta rapida scegliere Apri con.

  3. Nella finestra di dialogo Apri con selezionare Editor di codice sorgente (testo), quindi scegliere OK.

    Il file XAML verrà aperto nell'editor del codice.

Visualizzazione Progettazione

La visualizzazione Progettazione può essere utilizzata per lavorare con blocchi di XAML di grandi dimensioni, ma è possibile che si verifichino problemi di prestazioni. I suggerimenti seguenti possono essere utili per migliorare le prestazioni.

Per migliorare le prestazioni della visualizzazione Progettazione con i blocchi di XAML di grandi dimensioni

  • Spostare il blocco di XAML di grandi dimensioni in un UserControl distinto. Questo approccio consente di aggiungere il file XAML di grandi dimensioni all'area di progettazione con un impatto minimo sulle prestazioni.

  • Spostare il blocco di XAML di grandi dimensioni in un file di risorse XAML. Se il file di risorse è associato a un controllo personalizzato, il file XAML di grandi dimensioni viene caricato solo quando il controllo personalizzato viene aperto.

  • Ristrutturare il codice XAML per ridurre al minimo gli aggiornamenti che includono il grande blocco di XAML.

    Nell'esempio di codice riportato di seguito viene illustrato un elemento Canvas che contiene un blocco di XAML di grandi dimensioni che descrive un'immagine. Una modifica a uno dei controlli pulsante di pari livello determina necessariamente l'aggiornamento della griglia padre e di tutti i relativi figli. L'aggiornamento dell'elemento Canvas con un blocco di XAML di grandi dimensioni può ridurre le prestazioni.

    <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>
    

    Nel codice seguente viene mostrato come ristrutturare il codice XAML precedente per evitare problemi di prestazioni.

    <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>
    

    I controlli pulsante non sono più elementi di pari livello rispetto all'elemento Canvas ed eventuali modifiche a uno dei pulsanti non determinano l'aggiornamento dell'elemento Canvas.

Vedere anche

Riferimenti

Formattazione, XAML, editor di testo, finestra di dialogo Opzioni

Concetti

Risoluzione dei problemi relativi agli errori di caricamento di WPF e Silverlight Designer

Altre risorse

XAML e codice in Progettazione WPF

Debug e interpretazione degli errori in Progettazione WPF