Como: Tratar arquivos XAML grandes

XAML tem a capacidade para representar as estruturas de dados complexos.Como resultado, alguns arquivos XAML podem se tornar muito grandes.Por exemplo, uma representação de uma imagem vetorial XAML pode ser vários megabytes de tamanho.Arquivos XAML grandes podem causar problemas de desempenho na caixa Windows Presentation Foundation (WPF) Designer for Visual Studio.Os procedimentos a seguir podem ajudar manipular o desempenh de problemas causados por grandes blocos de XAML.

Somente Modo XAML

A melhor maneira para melhorar o desempenho quando você trabalha com grandes arquivos XAML em Visual Studio é para não usar modo de Design na caixa WPF Designer.Há duas abordagens que você pode usar para editar XAML em Visual Studio sem usar modo de Design.

A primeira abordagem é desativar modo de Design e usar apenas modo XAML.Você pode especificar que arquivos XAML devem ser abertos no modo de exibição total XAML apenas alterando um Editor de Texto opção.Usando essa abordagem, você têm total XAML edição suporte, a janelaEstrutura do Documento e a marca do Navigator.

A segunda abordagem é usar o editor de código-fonte.Você pode abrir arquivos XAML no editor de código-fonteOpen With caixa de diálogo.Esta é a abordagem mais leve e oferece o melhor desempenho para grandes arquivos XAML.Você tem edição suporte total XAML , mas você não ve a janela Estrutura de Tópicos do Documento e a marca do Navigator.

Para abrir XAML arquivos no modo de exibição total XAML

Abrir arquivos XAML no editor de código-fonte

  1. Em Gerenciador de Soluções,clique com o botão direito do mouse no arquivo XAML para abrir.

  2. No menu de atalho, selecione Abrir com.

  3. Na Abrir comcaixa de diálogo, selecione Editor de código-fonte (texto) e clique em OK.

    O arquivo XAML abre na editor de códigos.

O Modo Design

Você pode usar modo de design para trabalhar com grandes blocos de XAML, mas você pode enfrentar problemas de desempenho.As sugestões a seguir podem ajudar a melhorar o desempenho.

Para melhorar o desempenho do modo de design com blocos grandes de XAML

  • Mova seu bloco grande de XAML para um UserControl separado.Usando essa abordagem, você pode adicionar o arquivo XAML grande para o superfície de design com impacto mínimo no desempenho.

  • Mova o bloco grande de XAML para um arquivo de recurso XAML.Se este arquivo de recurso estiver associado com um controle personalizado, o arquivo XAML grande é carregado somente quando o designer abre o controle personalizado.

  • Reestruturar o XAML para minimizar atualizações que incluem o bloco grande de XAML.

    O exemplo de código a seguir ilustra um Canvas elemento que contém um bloco grande de XAML descrevendo uma imagem.Uma alteração em um dos controles de botão força a grade pai e todos os seus filhos para atualizar.Atualizando o elemento Canvas com um bloco grande de XAML pode diminuir o desempenho.

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

    O código a seguir mostra como reestruturar o XAML anterior para evitar problemas de desempenho.

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

    Os controles de botão não estão mais irmãos ao elemento Canvas, e alterações em um dos botões não força o elemento Canvas para atualização.

Consulte também

Conceitos

Solucionando falhas de carregamento do WPF Designer

Referência

Formatação, XAML, editor de texto, caixa de diálogo Opções

Outros recursos

XAML e código no criador de WPF

Depuração e interpretando erros no criador de WPF