Page.KeepAlive Proprietà

Definizione

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.

Si applica a

Vedi anche