Microsoft Longhorn - der Status der Zukunft

Deklarative Events

Zusätzlich zu einem Code-Behind-File, wie man es von ASP.NET schon kennt, bietet Avalon aber auch die Möglichkeit, Events rein deklarativ zu behandeln. Dazu gibt es so genannte Property-Trigger, die an Eigenschaften gebunden werden. Möchte man mit einem solchen Property-Trigger beispielsweise darauf reagieren, dass sich die Maus über einem Objekt befindet, und das Objekt in diesem Zusammenhang umfärben, sieht der Code etwa wie folgt aus:

<PropertyTrigger Property="IsMouseOver" Value="True">
<Set PropertyPath="Fill" Value="Red" />
</PropertyTrigger>

Mit anderen Worten: In Avalon ist es durchaus möglich, die Event-Behandlung rein deklarativ durchzuführen. Wie praxistauglich so ein Vorgehen tatsächlich ist, wenn das User-Interface komplexer wird und sich aus mehr als einem Objekt zusammensetzt, muss die Praxis allerdings erst noch erweisen.

Eines ist dabei auf jeden Fall schon klar: Avalon ist ein extrem mächtiges Werkzeug für die UI-Gestaltung: Unabhängig von den vielfältigen Möglichkeiten der Anwendung von Styles, der Nutzung von Multimedia-Elementen wie früher Buttons und der freien Skalierbarkeit aller Elemente, verwendet Avalon zum ersten Mal in Windows die GPU moderner Grafikkarten: Dadurch werden die visuellen Möglichkeiten dramatisch verbessert und es steht dadurch schließlich unendlich viel mehr an Rechenleistung fürs UI zur Verfügung, als das bisher der Fall war.

Der rein deklarative Teil des Codes wird dabei in einer Datei mit der Endung .xaml abgelegt, die dann entweder übersetzt wird, was in einem richtigem Windows-Programm resultiert, oder direkt in den Internet Explorer von Longhorn geladen wird: Der kann XAML nämlich auch direkt anzeigen. Der folgende XAML-Quellcode ist beispielsweise ein vollständiges Programm, das den Text "Hello World" anzeigt:

<TextPanel xmlns="http://schemas.microsoft.com/2003/xaml"
Background="BlanchedAlmond"
FontFamily="Comic sans MS"
FontSize="36pt"
HorizontalAlignment="Center">
Hello World
</TextPanel>