2009-05-18 7 views
6

Sto ricostruendo una struttura dell'applicazione slide-show WPF che ho trovato nello downloadable code for this WPF video.Qual è la differenza tra il caricamento di pagine o UserControls in un elemento frame XAML?

C'è una classe Presentation che ha una proprietà INotifyPropertyChanged "CurrentSlide" che cambia quando si fa clic sui pulsanti next/previous e viene visualizzata dinamicamente in un elemento Frame.

I scaricate codice carica le pagine in questa cornice, ma ho sperimentato con UserControls carico che sembrano funzionare altrettanto bene, in realtà non riesco a trovare alcuna differenza.

Qualcuno sa di differenze nel caricamento di pagine o UserControls in un elemento XAML Frame?

<Window x:Class="TestFull8229.Views.MainView" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:c="clr-namespace:TestFull8229.Commands" 
    xmlns:viewModels="clr-namespace:TestFull8229.ViewModels" 
    Title="Main Window" Height="400" Width="800"> 

    <Window.Resources> 
     <viewModels:Presentation x:Key="presentation"/> 
    </Window.Resources> 

    <DockPanel> 
     <StackPanel> 
      <Viewbox Stretch="Uniform"> 
       <Frame Width="800" Height="600" 
         Source="{Binding Path=CurrentSlide, 
         Source={StaticResource presentation}}"/> 
      </Viewbox> 
     </StackPanel> 
    </DockPanel> 
</Window> 

risposta

8

Una pagina è stata progettata per essere in un contenitore di navigazione in modo che ha una proprietà titolo e l'accesso al servizio di navigazione. Ma come hai notato, un UserControl può essere caricato in un frame così come qualsiasi "contenuto" WPF valido. La pagina funge anche da classe base per un PageFunction che è utile per la creazione di una navigazione strutturata come le procedure guidate.

Oh e un'altra cosa ... una pagina può essere caricata in Internet Explorer senza un'applicazione host. In altre parole, IE può fungere da contenitore di navigazione per la pagina, proprio come Frame o NavigationWindow.

+0

sì, ho trovato nel codice che il file .xaml principale legge la proprietà Title della pagina caricata, che un UserControl non ha, quindi questo è uno dei motivi per usare Pages almeno in questo esempio –

Problemi correlati