Page.KeepAlive Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece un valor que indica si la instancia se conserva en el Page 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 es si la instancia se conserva en el Page historial de navegación; de lo contrario, falsees . El valor predeterminado 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 se aleja una página (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 (URI) del paquete 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 rápidamente memoria, especialmente aquellas con una cantidad notrivial de contenido. Este problema se aumenta 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 posteriores 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 al uso de solo código (por ejemplo, llamar Navigatea ), se mantienen activas automáticamente.
Debe evitar establecer en KeepAlive 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 instancias constantes 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 páginas con tiempos de carga que se encuentran por debajo del intervalo necesario para la aplicación, la configuración de las páginas que se mantendrán activas puede ser una manera de resolver 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 de explorador XAML (XBAP) si un usuario se aleja y vuelve a la aplicación del explorador XAML (XBAP). Solo las entradas del diario para las páginas que no se mantienen activas se conservan en el historial de navegación.
Información de la propiedad dependency
| Elemento | Importancia |
|---|---|
| Campo identificador | KeepAliveProperty |
Propiedades de metadatos establecidas en true |
Ninguno |
Nota:
El tipo de metadatos de esta propiedad de dependencia es PropertyMetadata, no FrameworkPropertyMetadata.