JournalEntryUnifiedViewConverter クラス

定義

JournalEntryUnifiedViewConverter は、( Frame または NavigationWindowによって公開される) ナビゲーションバック履歴とナビゲーション転送履歴を 1 つのナビゲーション メニューにマージします。

public ref class JournalEntryUnifiedViewConverter sealed : System::Windows::Data::IMultiValueConverter
public sealed class JournalEntryUnifiedViewConverter : System.Windows.Data.IMultiValueConverter
type JournalEntryUnifiedViewConverter = class
    interface IMultiValueConverter
Public NotInheritable Class JournalEntryUnifiedViewConverter
Implements IMultiValueConverter
継承
JournalEntryUnifiedViewConverter
実装

次の例は、テキストベースのナビゲーション履歴メニューを作成する方法を示しています。 メニューでは、 JournalEntryUnifiedViewConverter を使用して、ホストされている Frame ナビゲーターの前後のナビゲーション履歴の両方を組み合わせます。

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:presentationFramework="clr-namespace:System.Windows.Navigation;assembly=presentationframework"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="JournalEntryUnifiedPositionConverterSnippets"
    >

    <Window.Resources>

        <presentationFramework:JournalEntryUnifiedViewConverter x:Key="JournalEntryUnifiedViewConverter" />

        <!--MenuItem data template-->
        <DataTemplate x:Key="JournalEntryMenuItemTemplate">
            <MenuItem VerticalContentAlignment="Center" Command="NavigationCommands.NavigateJournal" CommandTarget="{Binding ElementName=frame}" CommandParameter="{Binding RelativeSource={RelativeSource Self}}">
                <MenuItem.Template>
                    <ControlTemplate>
                        <TextBlock>
                            <TextBlock Text="{Binding (JournalEntryUnifiedViewConverter.JournalEntryPosition)}" FontWeight="Bold"></TextBlock>
                            <LineBreak />
                            <TextBlock Text="{Binding Path=Name}" />
                        </TextBlock>
                    </ControlTemplate>
                </MenuItem.Template>
            </MenuItem>
        </DataTemplate>

    </Window.Resources>

    <DockPanel>

        <!--Unified navigation history menu-->
        <Menu DockPanel.Dock="Top">
            <MenuItem Header="Unified Navigation History" ItemTemplate="{DynamicResource JournalEntryMenuItemTemplate}">
                <MenuItem.ItemsSource>
                    <MultiBinding Converter="{StaticResource JournalEntryUnifiedViewConverter}">
                        <MultiBinding.Bindings>
                            <Binding ElementName="frame" Path="BackStack"/>
                            <Binding ElementName="frame" Path="ForwardStack" />
                        </MultiBinding.Bindings>
                    </MultiBinding>
                </MenuItem.ItemsSource>
            </MenuItem>
        </Menu>

        <!--Navigator (Frame with its navigation chrome hidden-->
        <Frame Name="frame" NavigationUIVisibility="Hidden" Source="HomePage.xaml" />

    </DockPanel>
    
</Window>

注釈

FrameNavigationWindowの両方に、次のメカニズムを使用した履歴ナビゲーションをサポートするナビゲーション クロムが表示されます。

  • 一度に 1 つのコンテンツに戻るためのボタン。

  • 一度に 1 つのコンテンツを前方に移動するためのボタン。

  • 次を示すドロップダウン リスト。

    • バック ナビゲーション履歴の最大 9 つの項目と、前方ナビゲーション履歴内の最大 9 つの項目の組み合わせリスト。
    • 戻るナビゲーション履歴と前方ナビゲーション履歴の両方に関する現在のコンテンツの位置。

ナビゲーション履歴は、 NavigationWindowFrame の両方で次のプロパティに格納されます。

戻るナビゲーション履歴: Frame.BackStackNavigationWindow.BackStack

転送ナビゲーション履歴: Frame.ForwardStackNavigationWindow.ForwardStack

ドロップダウン リストを作成するには、NavigationWindowし、FrameJournalEntryUnifiedViewConverterを使用して、個々の戻るナビゲーション履歴と転送ナビゲーション履歴を 1 つのナビゲーション履歴エントリの一覧にマージします。 結果の一覧には、バック ナビゲーション履歴から最大 9 個のエントリと、前方ナビゲーション履歴から最大 9 個のエントリ、および現在のコンテンツのエントリが含まれます。

カスタム ナビゲーション UI を作成し、ドロップダウン リストを指定する必要がある場合は、 JournalEntryUnifiedViewConverter を使用して同様の効果を得ることができます。

XAML 属性の使用法

通常、このクラスは XAML では使用されません。

コンストラクター

名前 説明
JournalEntryUnifiedViewConverter()

JournalEntryUnifiedViewConverter クラスの新しいインスタンスを初期化します。

フィールド

名前 説明
JournalEntryPositionProperty

JournalEntryPosition添付プロパティを識別します。

添付プロパティ

名前 説明
JournalEntryPosition

エントリが戻るナビゲーション履歴、前方ナビゲーション履歴、またはナビゲーターの現在のコンテンツであるかどうかを指定する値を取得または設定します。

メソッド

名前 説明
Convert(Object[], Type, Object, CultureInfo)

2 つのナビゲーション履歴スタックをマージします。

ConvertBack(Object, Type[], Object, CultureInfo)

実装されていません。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetJournalEntryPosition(DependencyObject)

指定した要素の JournalEntryPosition 添付プロパティを取得します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
SetJournalEntryPosition(DependencyObject, JournalEntryPosition)

指定した要素の JournalEntryPositionProperty 添付プロパティを設定します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください