2009-05-18 5 views
6

Je reconstruis une structure d'application de diaporama WPF que j'ai trouvée dans le downloadable code for this WPF video.Quelle est la différence entre le chargement de pages ou de UserControls dans un élément de cadre XAML?

Il existe une classe Presentation qui possède une propriété INotifyPropertyChanged "CurrentSlide" qui change lorsque vous cliquez sur les boutons suivant/précédent et s'affiche dynamiquement dans un élément Frame.

Les charges du code téléchargé Pages dans ce cadre, mais j'expérimenté avec chargement UserControls qui semblent tout aussi bien, en fait, je ne peux trouver aucune différence.

Est-ce que quelqu'un connaît des différences dans le chargement des pages ou des UserControls dans un élément 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> 

Répondre

8

Une page est conçue pour être dans un conteneur de navigation il a une propriété de titre et l'accès au service de navigation. Mais comme vous l'avez noté, un UserControl pourrait être chargé dans un cadre ainsi que tout "contenu" WPF valide. Page sert également de classe de base pour une PageFunction utile pour créer une navigation structurée telle que des assistants. Oh et encore une chose ... une page peut être chargée dans Internet Explorer sans application hôte. En d'autres termes, IE peut agir comme un conteneur de navigation pour la page, tout comme Frame ou NavigationWindow.

+0

Oui, j'ai trouvé dans le code que le fichier .xaml principal lit la propriété Title de la page chargée, ce qu'un UserControl n'a pas, c'est donc une raison d'utiliser Pages au moins dans cet exemple –

Questions connexes