Share via


Gewusst wie: Behandeln von großen XAML-Dateien

Mit XAML können komplexe Datenstrukturen dargestellt werden. Daher können manche XAML-Dateien sehr groß werden. Die XAML-Darstellung eines Vektorbildes kann mehrere Megabyte groß sein. Große XAML-Dateien können die Leistung von WPF Designer für Visual Studio beeinträchtigen. Mit den folgenden Verfahren können Sie Leistungsprobleme behandeln, die durch große XAML-Blöcke hervorgerufen werden.

Nur XAML-Ansicht

Die beste Möglichkeit, bei der Arbeit mit großen XAML-Dateien in Visual Studio die Leistung zu verbessern, besteht darin, die Entwurfsansicht in WPF-Designer nicht zu verwenden. Es gibt zwei Ansätze, die Sie verwenden können, um XAML in Visual Studio zu bearbeiten, ohne dass Sie die Entwurfsansicht verwenden.

Der erste Ansatz besteht darin, die Entwurfsansicht zu deaktivieren und nur die XAML-Ansicht zu verwenden. Sie können angeben, dass XAML-Dateien nur in der XAML-Vollansicht geöffnet werden, indem Sie eine Text-Editor-Option ändern. Wenn Sie diesen Ansatz verwenden, erhalten Sie vollständige Unterstützung für die Bearbeitung von XAML, und Ihnen stehen das Fenster Dokumentgliederung und der Tag-Navigator zur Verfügung.

Der zweite Ansatz ist, den Quellcode-Editor zu verwenden. Im Dialogfeld Öffnen mit können Sie XAML-Dateien im Quellcode-Editor öffnen. Dies ist der einfachste Ansatz, mit dem für große XAML-Dateien eine optimale Leistung erzielt wird. Sie erhalten vollständige Unterstützung für die Bearbeitung von XAML, aber das Fenster Dokumentgliederung und der Tag-Navigator werden nicht angezeigt.

So öffnen Sie XAML-Dateien in der XAML-Vollansicht

  • Aktivieren Sie in den Text-Editor-Optionen für XAML die Option Dokumente immer in XAML-Vollansicht öffnen. Weitere Informationen finden Sie unter Formatierung, XAML, Text-Editor, Dialogfeld "Optionen".

    Wenn Sie das nächste Mal eine XAML-Datei öffnen, wird sie nur in der XAML-Ansicht geöffnet.

So öffnen Sie XAML-Dateien im Quellcode-Editor

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die XAML-Datei, die Sie öffnen möchten.

  2. Wählen Sie im Kontextmenü Öffnen mit aus.

  3. Wählen Sie im Dialogfeld Öffnen mit die Option Quellcode-Editor (Text) aus, und klicken Sie dann auf OK.

    Die XAML-Datei wird im Code-Editor geöffnet.

Entwurfsansicht

Sie können die Entwurfsansicht verwenden, wenn Sie mit großen XAML-Blöcken arbeiten, jedoch kann dies die Leistung beeinträchtigen. Mithilfe der folgenden Vorschläge können Sie die Leistung möglicherweise verbessern.

So verbessern Sie die Leistung der Entwurfsansicht bei Verwendung von großen XAML-Blöcken

  • Verschieben Sie den großen XAML-Block in ein separates UserControl-Element. Wenn Sie diesen Ansatz verwenden, können Sie Ihre große XAML-Datei bei minimalen Leistungseinbußen zur Entwurfsoberfläche hinzufügen.

  • Verschieben Sie den großen XAML-Block in eine XAML-Ressourcendatei. Wenn diese Ressourcendatei einem benutzerdefinierten Steuerelement zugeordnet ist, wird die große XAML-Datei nur dann geladen, wenn der Designer das benutzerdefinierte Steuerelement öffnet.

  • Strukturieren Sie den XAML-Code neu, um die Anzahl der Aktualisierungen zu minimieren, die den großen XAML-Block einschließen.

    Im folgenden Codebeispiel wird ein Canvas-Element mit einem großen XAML-Block gezeigt, der ein Bild beschreibt. Wenn eines der nebengeordneten Schaltflächen-Steuerelemente geändert wird, erzwingt dies eine Aktualisierung des übergeordneten Rasters und sämtlicher untergeordneter Elemente dieses Rasters. Wenn das Canvas-Element mit einem großen XAML-Block aktualisiert wird, kann dies die Leistung verringern.

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

    Im folgenden Code wird gezeigt, wie der vorherige XAML-Code umstrukturiert wird, um Leistungsprobleme zu vermeiden.

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

    Die Schaltflächen-Steuerelemente sind nicht mehr nebengeordnete Elemente des Canvas-Elements, und Änderungen an einer der Schaltflächen erzwingt keine Aktualisierung des Canvas-Elements.

Siehe auch

Referenz

Formatierung, XAML, Text-Editor, Dialogfeld "Optionen"

Konzepte

Problembehandlung bei Ladefehlern im WPF- und Silverlight-Designer

Weitere Ressourcen

XAML und Code im WPF-Designer

Debuggen und Interpretieren von Fehlern im WPF-Designer