次の方法で共有


JournalEntryUnifiedViewConverter クラス

定義

JournalEntryUnifiedViewConverterは、ナビゲーション バック履歴とナビゲーション転送履歴 (または NavigationWindowによってFrame公開される) を 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 つの項目の組み合わせリスト。
    • 戻るナビゲーション履歴と前方ナビゲーション履歴の両方に関する現在のコンテンツの位置。

ナビゲーション履歴は、 と Frame の両方NavigationWindowによって次のプロパティに格納されます。

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

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

ドロップダウン リストを作成しFrame、 を使用JournalEntryUnifiedViewConverterして、NavigationWindow個々の戻るナビゲーション履歴をマージし、ナビゲーション履歴をナビゲーション履歴エントリの 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)

適用対象

こちらもご覧ください