Partager via


Page.KeepAlive Propriété

Définition

Obtient ou définit une valeur qui indique si l’instance est conservée dans l’historique Page de navigation.

public:
 property bool KeepAlive { bool get(); void set(bool value); };
public bool KeepAlive { get; set; }
member this.KeepAlive : bool with get, set
Public Property KeepAlive As Boolean

Valeur de propriété

true si l’instance est conservée dans l’historique Page de navigation ; sinon, false. La valeur par défaut est false.

Exemples

L’exemple suivant montre comment utiliser XAML pour conserver une instance de la Page classe dans plusieurs navigations.

<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    WindowTitle="HomePage"
    KeepAlive="True"
    >
</Page>
<Page x:Class="CSharp.HomePage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  WindowTitle="HomePage"
    >
</Page>
using System;
using System.Windows;
using System.Windows.Controls;

namespace CSharp
{
    public partial class HomePage : Page
    {
        public HomePage()
        {
            InitializeComponent();

            // Keep this page in navigation history
            this.KeepAlive = true;
        }
    }
}

Imports System.Windows
Imports System.Windows.Controls

Namespace VisualBasic
    Partial Public Class HomePage
        Inherits Page
        Public Sub New()
            InitializeComponent()

            ' Keep this page in navigation history
            Me.KeepAlive = True
        End Sub

    End Class
End Namespace

Remarques

Lorsqu’une page est d’abord accédée, une nouvelle instance de la Page classe est créée. Lorsqu’une page est éloignée (de l’arrière ou de l’avant), une entrée de la page est ajoutée à l’historique de navigation. Par défaut, l’entrée ne référence pas l’objet de page. Au lieu de cela, l’entrée contient un URI (Uniform Resource Identifier) de pack pour la page. Lorsque l’entrée de la page est accédée à l’aide de l’historique de navigation, l’URI du pack est utilisé pour créer une nouvelle instance de la page. Ce comportement est la valeur par défaut, afin d’éviter une utilisation excessive de la mémoire : la conservation des instances de page peut rapidement consommer de la mémoire, en particulier celles avec une quantité de contenu nontriviale. Ce problème est augmenté par le fait qu’il n’existe aucune limite au nombre d’entrées qui peuvent être stockées dans les piles arrière et avant de l’historique de navigation. En revanche, le stockage des URI de pack pour les pages n’a pratiquement aucun impact sur la consommation de mémoire.

L’effet secondaire principal de la création de nouvelles instances d’une page est que l’état de la page n’est pas mémorisé d’une instance d’une page à une autre. Dans ce cas, Windows Presentation Foundation propose plusieurs techniques pour mémoriser l’état.

Pour conserver une page active, vous définissez la KeepAlive propriété true sur (la valeur par défaut est false).

Note

Les pages instanciées et accédées à l’utilisation uniquement de code (par exemple, l’appel Navigate) sont automatiquement conservées en vie.

Vous devez éviter la définition KeepAlive à true moins que vous n’ayez besoin de :

  • Lorsqu’une page a beaucoup de contenu, il peut prendre beaucoup de temps pour instancier. Si la page n’est pas conservée active et que la page est fréquemment sollicitée, le coût de l’instanciation constante de la page peut avoir un impact négatif sur l’expérience utilisateur. Toutefois, du point de vue des performances, vous devez vous appuyer sur les paramètres par défaut et profiler les performances de votre application ; si le test identifie les pages avec des temps de chargement inférieurs à la plage requise pour votre application, la configuration des pages à conserver actives peut être une façon de résoudre le problème.

Note

Les entrées des pages conservées en vie ne sont pas conservées dans l’historique de navigation d’une application de navigateur XAML (XBAP) si un utilisateur quitte et revient à l’application de navigateur XAML (XBAP). Seules les entrées de journal pour les pages qui ne sont pas conservées en vie sont conservées dans l’historique de navigation.

Informations sur les propriétés de dépendance

Élément Valeur
Champ d’identificateur KeepAliveProperty
Propriétés de métadonnées définies sur true Aucun

Note

Le type de métadonnées sur cette propriété de dépendance n’est PropertyMetadatapas FrameworkPropertyMetadata.

S’applique à

Voir aussi