(0) exportieren Drucken
Alle erweitern

Frame-Klasse

Aktualisiert: November 2007

Frame ist ein Inhaltssteuerelement, das Navigation unterstützt.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/xaml/presentation

[LocalizabilityAttribute(LocalizationCategory.Ignore)]
[ContentPropertyAttribute]
[TemplatePartAttribute(Name = "PART_FrameCP", Type = typeof(ContentPresenter))]
public class Frame : ContentControl, IAddChild, 
	IUriContext
/** @attribute LocalizabilityAttribute(LocalizationCategory.Ignore) */
/** @attribute ContentPropertyAttribute */
/** @attribute TemplatePartAttribute(Name = "PART_FrameCP", Type = ContentPresenter) */
public class Frame extends ContentControl implements IAddChild, 
	IUriContext
public class Frame extends ContentControl implements IAddChild, IUriContext

Frame ist ein Inhaltssteuerelement, das die Navigation in und die Anzeige von Inhalten ermöglicht. Frame kann wie andere Steuerelement und Elemente in anderen Inhalten gehostet werden.

Der Inhalt kann ein beliebiger Typ von .NET Framework-Objekten und HTML-Dateien sein. Im Allgemeinen wird Inhalt für die Navigation jedoch in Seiten eingeschlossen (siehe Page).

Die Navigation zum Inhalt erfolgt durch Festlegen der Source-Eigenschaft auf den URI des gewünschten Inhalts. Darüber hinaus kann mit einer der folgenden Überladungen der Navigate-Methode zum Inhalt navigiert werden:

Wenn mit dem URI zum Inhalt navigiert wird, gibt Frame ein Objekt mit dem Inhalt zurück. Sie können auch mit einer der Überladungen der Navigate-Methode, die ein Objekt akzeptiert, im Inhalt navigieren:

Die Lebensdauer einer Navigation kann mit den folgenden Ereignissen verfolgt werden:

Nicht alle Ereignisse werden bei jeder Navigation ausgelöst. Die ausgelösten Ereignisse werden durch den Typ der Navigation (Inhalt oder Inhaltsfragment) bestimmt und dadurch, wie die Navigation abgeschlossen wurde (abgebrochen, angehalten oder fehlgeschlagen).

Die folgende Abbildung veranschaulicht die Reihenfolge, in der diese Ereignisse ausgelöst werden:

Seitennavigations-Flussdiagramm

Während oder nach einer Navigation stellt Frame Informationen über den Inhalt dar, zu dem navigiert wird, einschließlich des URI für den Inhalt, zu dem navigiert wird (Source), des URI des aktuellen Inhalts (CurrentSource) und eines Objekts, das den Inhalt enthält, zu dem navigiert wurde (Content).

Wenn zu einem Inhalt navigiert wird, zeichnet Frame die Navigation als Eintrag im Navigationsverlauf auf. Im Navigationsverlauf wird ein neuer Eintrag für die Navigation zurück erstellt, wenn eine neue Navigation durch Aufruf der Navigate-Methode durchgeführt wird, oder wenn durch Aufruf von GoForward im Navigationsverlauf vorwärts zu einem Eintrag navigiert wird. Im Navigationsverlauf wird ein Eintrag für die Navigation vor erstellt, wenn durch Aufruf von GoBack zu einem früheren Eintrag im Navigationsverlauf navigiert wird. CanGoBack und CanGoForward geben an, ob im Navigationsverlauf Einträge für die Navigation zurück bzw. vor enthalten sind.

Wenn zum ersten Mal von einem Teil des Inhalts zu einem anderen navigiert wird, zeigt Frame automatisch einen Navigations-Benutzeroberfläche an, der die Navigation zurück und vor im Navigationsverlauf ermöglicht. Sie können konfigurieren, wann die Navigations-Benutzeroberfläche angezeigt wird, indem Sie die NavigationUIVisibility-Eigenschaft festlegen.

Standardmäßig verwendet Frame den eigenen Navigationsverlauf nur dann, wenn kein übergeordneter Navigator (NavigationWindow, Frame) mit einem eigenen Navigationsverlauf gefunden werden kann. Das bedeutet, dass die Einträge des Navigationsverlaufs für den Frame mit den Einträgen im Navigationsverlauf des übergeordneten Navigators gemischt werden. Um anzugeben, dass ein Frame seinen eigenen Navigationsverlauf verwaltet, legen Sie die JournalOwnership-Eigenschaft auf OwnsJournal fest.

Sie können den letzten Eintrag im Navigationsverlauf zurück durch Aufruf von RemoveBackEntry entfernen.

Frame speichert keine Instanz eines Inhaltsobjekts in Navigationsverlauf. Stattdessen erstellt Frame jedesmal eine neue Instanz des Inhaltsobjekts, wenn über den Navigationsverlauf zu diesem Objekt navigiert wird. Durch dieses Verhalten soll eine übermäßige Arbeitsspeicherauslastung verhindert werden, wenn die Navigation eine große Anzahl von Inhalten oder umfangreiche Inhalte enthält. Daher wird der Zustand des Inhalts nicht zwischen zwei Navigationsvorgängen gespeichert. WPF bietet allerdings verschiedene Techniken für das Speichern des Zustands eines Inhalts im Navigationsverlauf. Dazu gehören:

Mithilfe von AddBackEntry können Sie auch mehrere Zustandssätze für eine einzelne Seiteninstanz speichern (siehe Speichern mehrerer Zustandssätze pro Seiteninstanz).

Im folgenden Beispiel wird veranschaulicht, wie ein einfaches Frame-Steuerelement erstellt und mit der Source-Eigenschaft der anfängliche Quellinhalt angegeben wird, der von einem URI geladen wird.

<Window
    x:Class="XAML.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="XAML" Height="300" Width="300">


...


<Frame Name="islandFrame" Source="IslandFrameContent.xaml" />


...


</Window>


System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Media.Visual
        System.Windows.UIElement
          System.Windows.FrameworkElement
            System.Windows.Controls.Control
              System.Windows.Controls.ContentControl
                System.Windows.Controls.Frame

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft