Page.KeepAlive Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.