JournalEntryUnifiedViewConverter Classe

Definição

JournalEntryUnifiedViewConverter mescla o histórico de navegação e o histórico de encaminhamento de navegação (conforme exposto por Frame ou NavigationWindow) em um único menu de navegação.

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
Herança
JournalEntryUnifiedViewConverter
Implementações

Exemplos

O exemplo a seguir mostra como construir um menu de histórico de navegação baseado em texto. O menu usa para combinar os históricos JournalEntryUnifiedViewConverter de navegação para trás e para frente do navegador hospedado 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>

Comentários

Ambos Frame e NavigationWindow exibem o chrome de navegação que dá suporte à navegação de histórico usando os seguintes mecanismos:

  • Um botão para navegar de volta um pedaço de conteúdo de cada vez.

  • Um botão para navegar para frente um pedaço de conteúdo de cada vez.

  • Uma lista suspensa que mostra:

    • Uma lista combinada de até nove itens no histórico de navegação de back e até nove itens no histórico de navegação.
    • A posição do conteúdo atual em relação ao histórico de navegação para trás e para frente.

O histórico de navegação é armazenado por ambas e NavigationWindowFrame nas seguintes propriedades:

Histórico de navegação de volta: Frame.BackStack, NavigationWindow.BackStack.

Histórico de navegação de encaminhamento: Frame.ForwardStack, NavigationWindow.ForwardStack.

Para criar a lista NavigationWindow suspensa e Frame usar JournalEntryUnifiedViewConverter para mesclar o histórico de navegação de back individual e o histórico de navegação de encaminhamento em uma única lista de entradas de histórico de navegação. A lista resultante contém até nove entradas do histórico de navegação de back e até nove entradas do histórico de navegação para frente, além de uma entrada para o conteúdo atual.

Se você criar a interface do usuário de navegação personalizada e precisar fornecer uma lista suspensa, poderá usar para um JournalEntryUnifiedViewConverter efeito semelhante.

Uso do atributo XAML

Essa classe normalmente não é usada em XAML.

Construtores

Nome Description
JournalEntryUnifiedViewConverter()

Inicializa uma nova instância da classe JournalEntryUnifiedViewConverter.

Campos

Nome Description
JournalEntryPositionProperty

Identifica a JournalEntryPosition propriedade anexada.

Propriedades Anexadas

Nome Description
JournalEntryPosition

Obtém ou define um valor que especifica se uma entrada está no histórico de navegação de back, no histórico de navegação para frente ou se é o conteúdo atual de um navegador.

Métodos

Nome Description
Convert(Object[], Type, Object, CultureInfo)

Mescla duas pilhas de histórico de navegação.

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

Não implementado.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetJournalEntryPosition(DependencyObject)

Obtém a JournalEntryPosition propriedade anexada para o elemento especificado.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
SetJournalEntryPosition(DependencyObject, JournalEntryPosition)

Define a JournalEntryPositionProperty propriedade anexada do elemento especificado.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também