Neues in Windows Presentation Foundation Version 3.5

Aktualisiert: November 2007

In diesem Thema werden die wichtigsten Unterschiede zwischen den Versionen 3.0 und 3.5 von Windows Presentation Foundation (WPF) erläutert. 

Dieses Thema enthält folgende Abschnitte.

  • Kompatibilität mit Version 3.0
  • Anwendungen
  • Grafiken
  • 3D-Grafiken
  • Datenbindung
  • Steuerelemente
  • Dokumente
  • Anmerkungen
  • Verwandte Abschnitte

Kompatibilität mit Version 3.0

Aufwärts- und Abwärtskompatibilität

Eine mit WPF 3.0 erstellte Anwendung wird unter der WPF 3.5-Laufzeit ausgeführt.

Eine mit WPF 3.5 erstellte Anwendung wird unter der 3.0-Laufzeit ausgeführt, wenn die Anwendung ausschließlich Features verwendet, die in WPF 3.0 verfügbar sind.

WPF 3.5 definiert den neuen XML-Namespace https://schemas.microsoft.com/netfx/2007/xaml/presentation. Wenn Sie mit WPF 3.5 eine Anwendung erstellen, können Sie diesen oder den in WPF 3.0 definierten Namespace verwenden.

Verwenden einer bestimmten Laufzeit

Mit WPF 3.0 erstellte Anwendungen können eine beliebige Version des Frameworks verwenden, wenn diese gleich oder höher ist als die Version, für die die Anwendung ursprünglich erstellt wurde. Weitere Informationen finden Sie unter Gewusst wie: Verwenden einer Anwendungskonfigurationsdatei für die Ausrichtung auf eine .NET Framework-Version.

Anwendungen

Das Anwendungsmodell wurde wie folgt verbessert:

  • Umfassende Add-In-Unterstützung für visuelle und nicht visuelle Add-Ins von eigenständigen Anwendungen und XAML-Browseranwendungen (XBAPs).

  • XBAPs können jetzt in Firefox ausgeführt werden.

  • Cookies von derselben Ursprungssite können von XBAPs und Webanwendungen gemeinsam genutzt werden.

  • Verbesserte XAML-IntelliSense-Erfahrung für eine höhere Produktivität.

  • Erweiterte Lokalisierungsunterstützung.

Visuelle und nicht visuelle Add-Ins in WPF

Mit einer erweiterbaren Anwendung werden Funktionen so verfügbar gemacht, dass andere Anwendungen in die Funktionalität integriert werden und diese erweitern können. Add-Ins stellen ein gängiges Verfahren für Anwendungen dar, um ihre Erweiterbarkeit verfügbar zu machen. In .NET Framework stellt ein Add-In normalerweise eine Assembly dar, die als Dynamic Link Library (.dll) gepackt ist. Das Add-In wird von einer Hostanwendung dynamisch zur Laufzeit geladen, damit es die vom Host verfügbar gemachten Dienste verwenden und erweitern kann. Host und Add-In interagieren durch einen bekannten Vertrag miteinander. Meistens handelt es sich dabei um eine gemeinsame Schnittstelle, die von der Hostanwendung veröffentlicht wird.

Sobald eine Anwendung Add-Ins unterstützt, können Erst- und Drittanbieterentwickler Add-Ins dafür erstellen. Für diese Anwendungstypen gibt es zahlreiche Beispiele, darunter Office, Visual Studio und Microsoft Windows Media Player. Die Add-In-Unterstützung für Microsoft Windows Media Player ermöglicht es Drittanbietern beispielsweise, DVD-Decoder und MP3-Encoder zu erstellen.

Mit .NET Framework werden die Bausteine implementiert, die Anwendungen die Unterstützung von Add-Ins ermöglichen. Die Entwicklung einer solchen Unterstützung ist allerdings zeitaufwändig und komplex (kann also teuer sein), da bei einem stabilen Add-In-Design folgende Aufgaben zu berücksichtigen sind:

  • Ermittlung: Suchen nach Add-Ins, die von Hostanwendungen unterstützte Verträge einhalten.

  • Aktivierung: Laden, Ausführen und Herstellen der Kommunikation mit Add-Ins.

  • Isolation: Verwenden von Anwendungsdomänen oder Prozessen zum Einrichten von Isolationsgrenzen, die Anwendungen vor möglichen Sicherheitsproblemen und Problemen bei der Ausführung von Add-Ins schützen.

  • Kommunikation: Durch das Aufrufen von Methoden und Übergeben von Daten können Add-Ins und Hostanwendungen über Isolationsgrenzen hinweg miteinander kommunizieren.

  • Verwaltung der Lebensdauer: Laden und Entladen von Anwendungsdomänen und -prozessen auf eine klare, vorhersehbare Weise (siehe Übersicht über Anwendungsdomänen).

  • Versionsverwaltung: Sicherstellen, dass Hostanwendungen und Add-Ins auch dann noch kommunizieren können, wenn neue Versionen erstellt wurden.

Damit Sie diese Probleme nicht selbst lösen müssen, umfasst .NET Framework nun eine Reihe von Typen, die sich im System.AddIn-Namespace befinden und zusammengefasst als "Add-In-Modell" bezeichnet werden. Das Add-In-Modell von .NET Framework stellt für jede der oben aufgeführten allgemeinen Add-In-Verhaltensweisen Funktionen bereit.

In einigen Szenarien kann es außerdem sinnvoll sein, dass Add-Ins in die UIs der Hostanwendung integriert werden und diese erweitern. WPF erweitert das Add-In-Modell von .NET Framework, um diese Unterstützung zu ermöglichen. Dabei geht es darum, ein FrameworkElement, dessen Besitzer ein Add-In ist, in den UIs einer Hostanwendung anzuzeigen. Dadurch können WPF-Entwickler Anwendungen erstellen, die folgende allgemeine Szenarien unterstützen:

  • Eine Messenger-Anwendung, die zusätzliche Dienste mit "Buddy"-Add-Ins von Drittanbietern bereitstellt.

  • Spieleanwendungen, die zum Hosten der Spiele von Drittanbietern entworfen wurden.

  • Anwendungen zum Lesen von Inhalt, die Werbungen hosten.

  • Hybridanwendungen, die beliebige Module hosten; z. B. Windows-Sidebar.

Außerdem können WPF-Add-Ins sowohl von eigenständigen Anwendungen als auch von XBAPs gehostet werden.

Weitere Informationen finden Sie unter Windows Presentation Foundation – Übersicht über Add-Ins.

Firefox-Unterstützung für XBAPs

Ein Plug-In für WPF 3.5 ermöglicht das Ausführen von XBAPs aus Firefox 2.0. Dieses Feature ist in WPF 3.0 nicht verfügbar. Zu den wichtigsten Funktionen zählen die folgenden:

  • Ist Firefox 2.0 der Standardbrowser, berücksichtigen XBAPs die Konfiguration. Dies bedeutet, Internet Explorer wird nicht für XBAPs verwendet, wenn Firefox 2.0 als Standard festgelegt ist.

  • Die Sicherheitsfeatures, die für XBAPs verfügbar sind, die in Internet Explorer ausgeführt werden, sind auch für XBAPs verfügbar, die in Firefox 2.0 ausgeführt werden, einschließlich eines teilweise vertrauenswürdigen Sicherheitsbereichs (Sandbox). Zusätzliche vom Browser bereitgestellte Sicherheitsfeatures hängen vom Browser ab.

Cookies

Eigenständige WPF-Anwendungen und XBAPs können sowohl Sitzungscookies als auch dauerhafte Cookies erstellen, abrufen und löschen. In WPF 3.5 können dauerhafte Cookies von XBAPs, Webservern und HTML-Dateien mit derselben Ursprungssite gemeinsam genutzt werden.

Weitere Informationen zu Cookies finden Sie unter Übersicht über die Navigation.

Visual Studio IntelliSense-Erweiterungen

Sie können nun ein neues XAML-Element hinzufügen, indem Sie den XAML-Editor von Visual Studio verwenden. Sie können das Element (mithilfe des Name-Attributs) benennen, im Code-Behind darauf verweisen und dessen Member über den IntelliSense-Explorer anzeigen.

Lokalisierung

WPF 3.5 bietet zudem Unterstützung für die folgenden Skripts:

  • Bengali

  • Devanagari

  • Gujarati

  • Gurmukhi

  • Kannada

  • Malayalam

  • Oriya

  • Tamil

  • Telugu

Weitere Informationen finden Sie unter Globalisierung für Windows Presentation Foundation.

Unterstützung des Eingabemethoden-Editors für TextBox

Die FrameworkTextComposition-Klasse verfügt jetzt über folgende Eigenschaften:

FrameworkTextComposition wird als TextCompositionEventArgs.TextComposition-Eigenschaft verwendet, wenn der Benutzer mithilfe von IME Text in TextBox eingibt und das Ereignis TextInput, TextInputUpdate oder TextInputStart eintritt.

Grafiken

Sie können nun Bilder zwischenspeichern, die über HTTP an den lokalen Zwischenspeicher für temporäre Dateien von Microsoft Internet Explorer heruntergeladen wurden. Die Bilder werden dadurch bei nachfolgenden Anforderungen von der lokalen Festplatte geladen, und nicht aus dem Internet. Je nach Bildgröße kann dies eine deutliche Steigerung der Netzwerkleistung bedeuten. Folgende Member wurden hinzugefügt, um diese Funktion zu unterstützen:

Das BitmapSource.DecodeFailed-Ereignis wurde hinzugefügt, damit Sie benachrichtigt werden, wenn ein Bild wegen eines beschädigten Headers nicht geladen werden kann.

3D-Grafiken

Folgende neue Features wurden dem 3D-Objektmodell hinzugefügt.

Eingabe-, Fokus- und Ereignisunterstützung in 3D

Das 3D-Objektmodell unterstützt jetzt UIElement-Konzepte wie Eingabe, Fokus und Ereignisse. Die neuen Klassen, die diese Dienste bereitstellen, sind UIElement3D und deren abgeleitete Klassen ContainerUIElement3D sowie ModelUIElement3D. Beispiele zu diesem Thema finden Sie unter Beispiel für UIElement3D-Sphäre und Beispiel für das Behandeln von Ereignissen in 3D.

Interaktiver 2D-Inhalt in 3D

Die neue Viewport2DVisual3D-Klasse unterstützt das Einfügen interaktiver 2D-Inhalte in 3D-Objekte. Ein Beispiel finden Sie unter Interaktives Beispiel für 2D in 3D.

Neue Transformationsdienste

Die neuen Klassen GeneralTransform3D, GeneralTransform2DTo3D und GeneralTransform3DTo2D ermöglichen Transformationen zwischen Visual3D-Objekten bzw. von 2D nach 3D und umgekehrt.

Datenbindung

Die folgenden Verbesserungen wurden an der Datenbindung vorgenommen:

  • Ein neues Verfahren zum Debuggen vereinfacht das Debuggen von Datenbindungen.

  • Das Datenmodell ermöglicht eine Validierung auf der Geschäftsebene, da es Unterstützung für die IDataErrorInfo-Schnittstelle bietet. Außerdem unterstützt das Validierungsmodell nun die Verwendung der Eigenschaftensyntax zum Festlegen von Validierungsregeln.

  • Das Datenbindungsmodell unterstützt jetzt LINQ und XLINQ.

Neues Debugverfahren

Das Debuggen von Datenbindungen wurde vereinfacht. Sie können die neue angefügte Eigenschaft PresentationTraceSources.TraceLevel auf ein für die Datenbindung relevantes Objekt festlegen, um Informationen über den Status einer bestimmten Bindung zu erhalten. PresentationTraceSources ist eine statische Klasse im System.Diagnostics-Namespace.

Unterstützung für IDataErrorInfo

Das Datenvalidierungsmodell unterstützt die IDataErrorInfo-Schnittstelle, damit ein Geschäftsobjekt die Gültigkeit der Eingabe prüfen kann. Durch die Schnittstelle wird ein Indexer definiert, der einen Eigenschaftennamen akzeptiert und eine Zeichenfolge zurückgibt. Es wurde die Validierungsregel DataErrorValidationRule hinzugefügt, mit der die vom Indexer zurückgegebenen Ausnahmen überprüft werden. Ein Beispiel finden Sie unter Beispiel für die Validierung auf Geschäftsebene.

Alternative Syntax für Datenvalidierung

Die Binding-Klasse und die MultiBinding-Klasse verfügen über zwei neue Eigenschaften: ValidatesOnExceptions und ValidatesOnDataErrors. Diese beiden Eigenschaften stellen eine Alternative zum Festlegen von ExceptionValidationRule oder DataErrorValidationRule in der Elementsyntax dar.

LINQ- und XLINQ-Unterstützung

Es wurden Verbesserungen an BindingListCollectionView vorgenommen, damit Bindungen an eine Auflistung vom Typ BindingList<T> sowie LINQ-Bindungen besser unterstützt werden können. Auch das Verhalten von Datenbindungen mit einer CollectionView von IEnumerable wurde optimiert, um die Leistung zu steigern und das Binden an durch LINQ erzeugte Ergebnisse besser unterstützen zu können. Ein Beispiel zu LINQ finden Sie unter Beispiel für LINQ-Abfrage.

Darüber hinaus bietet das Datenbindungsmodell Unterstützung für XLINQ.

Steuerelemente

RichTextBox

RichTextBox behält nun benutzerdefinierte TextElement-Objekte bei, wenn TextElement gespeichert und TextElement an Zwischenablagevorgängen beteiligt wird. Dieses Verhalten wird von den folgenden neuen APIs unterstützt:

RichTextBox verfügt über eine neue Eigenschaft mit dem Namen IsDocumentEnabled. Wenn IsDocumentEnabled auf true festgelegt ist, werden Benutzereingaben von Benutzeroberflächenelementen wie Schaltflächen und Hyperlinks akzeptiert.

TextBoxBase

TextBoxBase verfügt über eine neue Eigenschaft mit dem Namen UndoLimit, die die maximale Anzahl von Aktionen angibt, auf die das Steuerelement verweist.

SoundPlayerAction

SoundPlayerAction kann jetzt Audiodateien laden, die sowohl von relativen als auch von absoluten Paket-Uniform Resource Identifier (URIs) identifiziert werden können:

  • Ressourcendateien: Audiodateien mit dem Buildvorgang Resource.

  • Inhaltsdateien: Audiodateien mit dem Buildvorgang Content.

  • Dateien der Ursprungssite: Audiodateien mit dem Buildvorgang None.

Geschützte set-Accessoren

Die set-Accessoren der folgenden Eigenschaften sind jetzt nicht mehr intern, sondern geschützt:

Dokumente

FlowDocumentPageViewer, FlowDocumentScrollViewer und FlowDocumentReader verfügen jeweils über eine neue öffentliche Eigenschaft mit der Bezeichnung Selection. Die Eigenschaft ruft die TextSelection ab, die den ausgewählten Inhalt im Dokument darstellt.

Anmerkungen

Das Framework für Anmerkungen macht nun die Funktionen zum Zuordnen von Anmerkungen zu den entsprechenden Objekten mit Anmerkungen verfügbar. Mit IAnchorInfo wurde eine neue Schnittstelle hinzugefügt. Darüber hinaus wurde die neue GetAnchorInfo-Methode, die ein IAnchorInfo-Objekt zurückgibt, zur AnnotationHelper-Klasse hinzugefügt.

Diese Erweiterungen ermöglichen Szenarien, in denen Sie auf das Objekt zugreifen müssen, mit dem das Anmerkungsobjekt verbunden ist. Ein Beispiel finden Sie unter Beispiel für einen Dokumentviewer mit Kommentarbereich für Anmerkungen.

Siehe auch

Aufgaben

Beispiel für einen Dokumentviewer mit Kommentarbereich für Anmerkungen

Konzepte

Architektur von .NET Framework 3.5

Neues in .NET Framework, Version 3.5

Übersicht über 3D-Grafiken

Übersicht über Datenbindung

Übersicht über Anmerkungen

Referenz

SoundPlayerAction

BitmapImage