Page.KeepAlive Page.KeepAlive Page.KeepAlive Page.KeepAlive Property

定義

Page のインスタンスがナビゲーション履歴に保持されるかどうかを示す値を取得または設定します。

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

プロパティ値

ナビゲーション履歴に Page のインスタンスを保持する場合は true。それ以外の場合は false。 既定値は、false です。

次の例は、使用する方法を示しますXAMLのインスタンスを保持する、Page複数ナビゲーション間をまたいでクラス。

<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
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

注釈

ページが最初の新しいインスタンスを移動すると、Pageクラスが作成されます。 (戻るまたは進む) からページが移動したとき、ページのエントリは、ナビゲーション履歴に追加されます。 既定では、エントリは、ページ オブジェクトを参照していません。 代わりに、エントリには、ページのパック uniform resource identifier (URI) が含まれています。 ページのエントリを移動して、ナビゲーション履歴を使用する、パック URI を使用して、ページの新しいインスタンスを作成できます。 この動作は、過剰なメモリの使用を回避するために、既定値: 特に重要なコンテンツ量のメモリを簡単に使用できるページのインスタンスを保持します。 この問題は、バックエンドに格納できるエントリの数とのナビゲーション履歴スタックを前方に制限がないという事実によって拡張されました。 これに対し、ページのパック Uri を格納すると、メモリ消費量の実質的な影響はありませんが、します。

ページの新しいインスタンスを作成する主な副作用は、ページの状態が別に記憶のページの 1 つのインスタンスからされません。 このような場合は、Windows Presentation Foundation は、状態を記憶するためのいくつかの手法を提供します。

ページを維持するには設定、KeepAliveプロパティをtrue(既定値はfalse)。

注意

インスタンスを作成し、コードのみを使用してに移動するページ (たとえば、呼び出しNavigate)、保持では自動的に。

設定はしないでKeepAlivetrueする必要がある場合を除き、します。

  • 大量のコンテンツをページには、インスタンス化に時間がかかることがあります。 場合は、ページがキープ アライブされず、ページに頻繁にナビゲートすると、ページを常にインスタンス化のコストは、ユーザー エクスペリエンスに悪影響を及ぼす可能性があります。 ただし、パフォーマンスの観点からする必要があります、既定の設定に依存し、アプリケーションのパフォーマンスのプロファイルテストは、読み込み時間、アプリケーションに必要な範囲の下にあるページを識別する、有効のまま保持するように設定する、問題を解決する方法の 1 つことがあります。

注意

ナビゲーション履歴には有効のまま保持するページのエントリは保持されません、XAML ブラウザー アプリケーション (XBAP)との間でナビゲートする場合に戻すと、XAML ブラウザー アプリケーション (XBAP)します。 ナビゲーション履歴には、キープ ア ライブされないはページの履歴項目のみが保持されます。

依存プロパティ情報

識別子フィールドです。 KeepAliveProperty
メタデータのプロパティを設定するには true なし

注意

この依存関係プロパティのメタデータ型がPropertyMetadataではなく、FrameworkPropertyMetadataします。

適用対象

こちらもご覧ください