2009-05-18 9 views
6

Ich rekonstruiere eine WPF Slideshow-Anwendung Struktur, die ich in der downloadable code for this WPF video gefunden habe.Was ist der Unterschied zwischen dem Laden von Pages oder UserControls in ein XAML-Frame-Element?

Es gibt eine Presentation-Klasse mit einer INotifyPropertyChanged-Eigenschaft "CurrentSlide", die sich beim Klicken auf nächste/vorherige Schaltflächen ändert und dynamisch in einem Frame-Element angezeigt wird.

Die heruntergeladenen Code Lasten Seiten in diesen Rahmen, aber ich experimentierte mit Laden Usercontrols, die genauso gut zu funktionieren scheint in der Tat kann ich keinen Unterschied finden.

Kennt jemand Unterschiede beim Laden von Pages oder UserControls in ein XAML-Frame-Element?

<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> 

Antwort

8

Eine Seite ist so konzipiert, in einem Navigations Behälter zu sein, so dass es einen Titel Eigentum und Zugang zum Navigationsdienst hat. Aber wie Sie bereits angemerkt haben, könnte ein UserControl in einen Frame geladen werden, ebenso wie ein beliebiger gültiger WPF- "Inhalt". Die Seite dient auch als Basisklasse für eine PageFunction, die zum Erstellen einer strukturierten Navigation wie beispielsweise Assistenten nützlich ist.

Oh, und noch etwas ... eine Seite kann im Internet Explorer ohne eine Host-Anwendung geladen werden. Mit anderen Worten, der IE kann als Navigationscontainer für die Seite fungieren, genau wie Frame oder NavigationWindow.

+0

ja, ich habe in dem Code gefunden, dass die Hauptdatei .xaml die Title-Eigenschaft der geladenen Seite ausliest, die ein UserControl nicht hat, so dass ein Grund ist, Pages zumindest in diesem Beispiel zu verwenden –