Page.KeepAlive Propiedad

Definición

Obtiene o establece un valor que indica si se conserva la instancia de Page en el historial de navegación.

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

Valor de propiedad

true si se conserva la instancia de Page en el historial de navegación; de lo contrario, false. De manera predeterminada, es false.

Ejemplos

En el ejemplo siguiente se muestra cómo usar XAML para conservar una instancia de la Page clase en varias navegaciones.

<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

Comentarios

Cuando se navega por primera vez una página, se crea una nueva instancia de la Page clase . Cuando una página se aleja (ya sea hacia atrás o hacia delante), se agrega una entrada para la página al historial de navegación. De forma predeterminada, la entrada no hace referencia al objeto page. En su lugar, la entrada contiene un identificador uniforme de recursos de paquete (URI) para la página. Cuando se navega a la entrada de la página mediante el historial de navegación, el URI del paquete se usa para crear una nueva instancia de la página. Este comportamiento es el valor predeterminado, para evitar un uso excesivo de memoria: la retención de instancias de página puede consumir memoria rápidamente, especialmente aquellas con una cantidad de contenido notrivial. Este problema se incrementa por el hecho de que no hay ningún límite para el número de entradas que se pueden almacenar en las pilas posteriores y reenviadas del historial de navegación. Por el contrario, el almacenamiento de URI de paquete para páginas no tiene prácticamente ningún impacto en el consumo de memoria.

El efecto secundario principal de la creación de nuevas instancias de una página es que el estado de la página no se recuerda de una instancia de una página a otra. En estos casos, Windows Presentation Foundation ofrece varias técnicas para recordar el estado.

Para mantener activa una página, establezca la KeepAlive propiedad true en (el valor predeterminado es false).

Nota:

Las páginas que se crean instancias y se navegan a usando solo código (por ejemplo, llamar a Navigate), se mantienen activas automáticamente.

Debe evitar establecer KeepAlive en a true menos que necesite:

  • Cuando una página tiene mucho contenido, puede tardar mucho tiempo en crear instancias. Si la página no se mantiene activa y la página se navega con frecuencia, el costo de crear una instancia constante de la página puede tener un impacto negativo en la experiencia del usuario. Sin embargo, desde una perspectiva de rendimiento, debe confiar en la configuración predeterminada y generar perfiles de rendimiento de la aplicación; Si las pruebas identifican las páginas con tiempos de carga que se encuentran por debajo del intervalo necesario para la aplicación, configurar las páginas que se mantendrán activas puede ser una manera de solucionar el problema.

Nota:

Las entradas de las páginas que se mantienen activas no se conservan en el historial de navegación de una aplicación del explorador XAML (XBAP) si un usuario se aleja y vuelve a la aplicación del explorador XAML (XBAP). Solo las entradas del diario de las páginas que no se mantienen activas se conservan en el historial de navegación.

Información sobre propiedades de dependencia

Campo identificador KeepAliveProperty
Propiedades de metadatos establecidas en true None

Nota

El tipo de metadatos de esta propiedad de dependencia es PropertyMetadata, no FrameworkPropertyMetadata.

Se aplica a

Consulte también