Page.KeepAlive Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che indica se l'istanza della classe Page viene conservata nella cronologia di navigazione.
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
Valore della proprietà
true
se l'istanza di Page viene conservata nella cronologia di navigazione; in caso contrario, false
. Il valore predefinito è false
.
Esempio
L'esempio seguente illustra come usare XAML per mantenere un'istanza della Page classe in più spostamenti.
<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
Commenti
Quando si passa per la prima volta a una pagina, viene creata una nuova istanza della Page classe . Quando una pagina viene spostata da (indietro o avanti), viene aggiunta una voce per la pagina alla cronologia di spostamento. Per impostazione predefinita, la voce non fa riferimento all'oggetto pagina. La voce contiene invece un URI (Uniform Resource Identifier) di tipo Pack per la pagina. Quando si passa alla voce per la pagina usando la cronologia di spostamento, l'URI pack viene usato per creare una nuova istanza della pagina. Questo comportamento è l'impostazione predefinita, per evitare un uso eccessivo della memoria: la conservazione delle istanze di pagina può utilizzare rapidamente la memoria, in particolare quelle con una quantità di contenuto nontriviale. Questo problema è aumentato dal fatto che non esiste alcun limite al numero di voci che possono essere archiviate negli stack back e forward della cronologia di navigazione. Al contrario, l'archiviazione degli URI pack per le pagine non ha praticamente alcun impatto sull'utilizzo della memoria.
L'effetto collaterale principale della creazione di nuove istanze di una pagina è che lo stato della pagina non viene memorizzato da un'istanza di una pagina a un'altra. In questi casi, Windows Presentation Foundation offre diverse tecniche per ricordare lo stato.
Per mantenere attiva una pagina, impostare la KeepAlive proprietà su true
(il valore predefinito è false
).
Nota
Le pagine di cui viene creata un'istanza e si passano all'uso solo del codice (ad esempio, la chiamata Navigatea ), vengono mantenute attive automaticamente.
È consigliabile evitare di impostare su KeepAlivetrue
a meno che non sia necessario:
- Quando una pagina ha molto contenuto, potrebbe essere necessario molto tempo per creare un'istanza. Se la pagina non viene mantenuta attiva e la pagina viene spesso spostata a, il costo della creazione di un'istanza costante della pagina potrebbe avere un impatto negativo sull'esperienza utente. Tuttavia, dal punto di vista delle prestazioni, è consigliabile basarsi sulle impostazioni predefinite e profilarne le prestazioni; se il test identifica le pagine con tempi di caricamento inferiori all'intervallo necessario per l'applicazione, la configurazione delle pagine da mantenere attiva può essere un modo per risolvere il problema.
Nota
Le voci per le pagine mantenute attive non vengono mantenute nella cronologia di navigazione di un'applicazione browser XAML (XBAP) se un utente si allontana e torna all'applicazione browser XAML (XBAP). Solo le voci del journal per le pagine non mantenute attive vengono mantenute nella cronologia di navigazione.
Informazioni proprietà di dipendenza
Campo Identificatore | KeepAliveProperty |
Proprietà dei metadati impostate su true |
Nessuno |
Nota
Il tipo di metadati in questa proprietà di dipendenza è PropertyMetadata, non FrameworkPropertyMetadata.