GUI-Programmierung 2 - Windows Presentation Foundation (WPF)

Größe: px
Ab Seite anzeigen:

Download "GUI-Programmierung 2 - Windows Presentation Foundation (WPF)"

Transkript

1 GUI-Programmierung 2 - Windows Presentation Foundation (WPF) Alexander Aumann aumann@in.tum.de Abstract: Seit.NET 3.0 ist WPF als Nachfolger von Windows Forms das Mittel der Wahl zum Erstellen grafischer Oberflächen mit.net. Diese Ausarbeitung stellt die Unterschiede und ein paar der interessanteren Features von WPF vor. WPF wurde mit Version 3.0 des.net-frameworks von Microsoft als die neue Programierschnittstelle zur Erstellung grafischer Benutzeroberflächen (engl.: graphical user interfaces = GUIs) eingeführt. Es ist somit der Nachfolger der seit.net 1.0 verwendeten Windows Forms, und hat es mittlerweile - was Microsofts eigene Projekte angeht - auch weitgehend abgelöst: so ist das neue Visual Studio 2010 mit WPF entwickelt worden [Sch09]. Im Rahmen dieses Dokuments werden daher die Vorzüge des neuen Systems im Vergleich zu Windows Forms aufgezeigt, sowie einige der interessanteren Neuerungen vorgestellt. 1 Windows Forms oder WPF? Ein Vergleich Ein erster großer Unterschied zwischen WPF und Windows Forms (kurz: WinForms) ist die Art und Weise wie das einzelne Standardsteuerelement (zum Beispiel ein Textfeld oder Button) auf den Bildschirm gezeichnet wird. WinForms greift zur Grafikausgabe auf GDI/GDI+ zurück und bietet somit praktisch nur eine Einbettung der schon seit Windows 95 grundsätzliche vorhandenen Zeichenfunktionen in Managed Code an. WPF dagegen zeichnet alle Steuerelemente unter Zuhilfenahme von DirectX selbst. Das ermöglicht auf der einen Seite eine sehr flexible Anpassung der Steuerelemente (siehe Abschnitt 4: Styles und Control Templates) und dank DirectX außerdem hardwarebeschleunigtes Zeichnen. Das zweite große Plus von WPF ist die Art und Weise, wie man als Designer den Aufbau der grafischen Oberfläche definiert. Betrachten wir dazu kurz die Vorgehensweise unter WinForms: Selbst wenn man zur Oberflächenerstellung ein grafisches Designprogramm, wie zum Beispiel den im Visual Studio enthaltenen Designer verwendet, wird der Entwurf im Hintergrund in C#-Programmcode umgesetzt und die Oberflächendefinition auf diese Art und Weise festgehalten. Als WPF-Designer dagegen definiert man Oberflächen in XAML (vergleiche Abschnitt 2) komplett getrennt von der für die Programmlogik verwendeten Programmiersprache. Dadurch ist es beispielsweise einem unabhängigen Designteam möglich, eine ausgefallene GUI zu entwerfen, ohne sich Gedanken über die verwendete Programmiersprache machen zu müssen.

2 Mit WPF wurden auch viele der im Hintergrund wirksamen Mechanismen überarbeitet, so wurde das Eventsystem durch Routed Events deutlich verbessert, Commands erlauben es häufig vorkommende Befehle wie Drucken oder Copy & Paste zentral zu verwalten. Viele im Verlauf der kommenden Seiten vorgestellte Features funktionieren nur Dank sogenannter Dependency Properties. All diese Weiterentwicklungen und Neuerungen in WPF machen es erst so mächtig, wie es letztlich ist. Sie seien hier jedoch nur kurz der Vollständigkeit halber erwähnt, da eine ausführliche Behandlung den Rahmen dieser Arbeit sprengen würde. Bevor im nächsten Kapitel XAML näher vorgestellt wird, sollen auch einige Nachteile von WPF im Vergleich zu Windows Forms nicht unerwähnt bleiben. Zum Ersten erfordert gerade die Tatsache, dass WPF so umfangreiche Möglichkeiten bietet, eine gewisse Einarbeitungszeit, alleine schon, um sich einen Überblick zu verschaffen. Da WPF im Vergleich zu WinForms recht jung ist, fehlen auch (noch) ein paar der mächtigeren vorgefertigten Steuerelemente, wie zum Beispiel die DataGridView. 2 XAML XAML, beziehungsweise ausgeschrieben die Extensible Application Markup Language, wurde von Microsoft speziell für WPF entwickelt und ist im wesentlichen ein XML- Dialekt, der zur Oberflächenbeschreibung (und Ressourcenverwaltung) dient. Zu Oberflächenbeschreibung zählen bei WPF nicht nur das einfache Layout beziehungsweise die Anordnung der Steuerelemente, sondern auch Styles, verschiedene Templates zum noch feineren Anpassen der einzelnen Steuerelemente und sogar Animationen. Auf diese Features wird in den späteren Abschnitten noch ausführlicher eingegangen, in diesem Kapitel werden zunächst einige Grundlagen vorgestellt. 2.1 XAML-Dateien in einer frischen WPF-Anwendung Wenn man beispielsweise mit dem Visual Studio 2010 ein neues WPF-Projekt erstellt, enthält es folgende Dateien, die zur Bearbeitung durch den Entwickler primär vorgesehen sind: App.xaml App.xaml.cs MainWindow.xaml MainWindow.xaml.cs Die App.* Dateien sind quasi leer (bis auf die Festlegung des Anwendungshauptfensters in App.xaml) und dienen später beispielsweise der Definition globaler Ressourcen. Die Datei MainWindow.xaml sieht zum Beispiel wie folgt aus:

3 <Window x:class="wpfapplication1.mainwindow" xmlns=" xmlns:x=" Title="MainWindow" Height="350" Width="525"> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <TextBox Name="text1" Grid.Row="0"/> <Button Name="button1" Content="OK" Grid.Row="1"/> </Grid> </Window> Die erste Zeile legt dabei fest, dass eine Klasse MainWindow im Namespace WpfApplication1 erstellt werden soll, die von Window erbt. Die beiden folgenden Zeilen dienen zur Einbindung der für XAML nötigen XML-Namensräume, wobei in.../xaml/presentation zum Beispiel alle WPF-Klassen und somit alle Steuerelemente liegen. Dadurch, dass dieser Namensraum direkt dem des aktuellen Dokuments zugewiesen wird, können Elemente daraus ohne qualifizierenden Namen direkt verwendet werden (zum Beispiel Window oder Grid). Im Hintergrund sucht sich der XAML-Compiler automatisch die korrespondierende.net-klasse, im Fall von Window zum Beispiel System.Windows.Window. In../xaml liegen speziellere Elemente, die dazu dienen genauer festzulegen, wie das XAML-File interpretiert werden soll. Auf diese Elemente kann mit "x:elementname" zugreifen. Was in den verbliebenen Zeilen passiert, wird im nächsten Abschnitt genauer erläutert, zunächst wollen wir uns kurz der zugehörigen C#-Quelldatei MainWindow.xaml.cs widmen. Sie enthält den Teil der Klasse MainWindow, der zur Bearbeitung durch den Programmierer vorgesehen ist und ist bis auf einen Aufruf der InitializeComponent()- Methode im Konstruktor anfangs leer. Diese Datei ist später der ideale Ort um beispielsweise Code zum Event-Handling et cetera unterzubringen. Ein großer Unterschied zu WindowsForms ist dabei, dass der automatisch generierte zweite Teil der Klasse MainWindow, der in der Datei MainWindow.d.cs liegt, nur Membervariablen zuweist, um dem Programmierer die Möglichkeit zu geben auf einzelne Steuerelemente aus dem Programmcode zuzugreifen. Das Layout hingegen wird darin nicht festgelegt, sondern zur Laufzeit aus der zugehörigen XAML-Datei konstruiert (genauer gesagt aus einer zur Kompilierzeit erzeugten binären Repräsentation des XAML-Codes, sogenanntem Binary-Application-Markup-Language-Code (BAML)). 2.2 Steuerlemente und ihre Eigenschaften Als Steuerelement (engl.: control) bezeichnet man die einzelnen Bausteine einer GUI, zum Beispiel Buttons, Labels oder Textfelder. Jedes Steuerelement hat gewisse Eigen-

4 schaften (engl.: properties), die in WPF in Form von Dependency Properties umgesetzt werden (eine Erweiterung des Property-Systems von WinForms, mehr sei dazu an dieser Stelle nicht gesagt). Durch das Setzen dieser Eigenschaften kann man das Verhalten beziehungsweise Aussehen einzelner Steuerelemente beeinflussen, zum Beispiel indem man die Text-Eigenschaft einer TextBox festlegt. In XAML werden Eigenschaften festgelegt, indem man im Start-Tag des Elements nach dem Typ des Elements alle Eigenschaften, die man setzen möchte, aufzählt und ihnen den entsprechenden Wert zuweist. So erhält die Titel-Eigenschaft des Hauptfensters im obigen Beispiel den Wert "MainWindow" und zeigt diesen String somit in der Titelleiste an, außerdem werden noch Höhe und Breite des Fensters gesetzt (dazu sei kurz erwähnt, dass WPF aus Flexibilitätsgründen nicht in Pixeln rechnet, sondern in sogenannten geräteunabhängigen Einheiten der Größe 1 96 inch). Einem Fenster fügt man Steuerelemente in XAML einfach dadurch hinzu, dass man sie an der gewünschten Stelle im XML-Baum auflistet, im Regelfall eingebettet in ein Layout (mehr dazu im nächsten Kapitel). Im Beispiel enthält das Hauptfenster ein Grid-Layout, welches wiederum einen Button und eine TextBox enthält. Erwähneswert sind noch sogenannte Attached Properties: Hierbei handelt es sich um Eigenschaften, die eigentlich nicht zum Steuerelement selbst gehören, sondern zum Container, der es beeinhaltet. Alle Elemente, die in ein Grid eingebettet werden, erhalten so zum Beispiel eine zusätzliche Row-Eigenschaft. Um diese Attached Properties zu ändern, muss man vor die Eigenschaft noch den Namen des Elements stellen, zu der sie gehört: Grid.Row="0" im Beispiel setzt diese Eigenschaft für das Textfeld auf 0. Nachdem nun ein grober Überblick über XAML erfolgt ist, beschäftigt sich der nächste Abschnitt näher mit den verschiedenen Möglichkeiten eine Oberfläche zu strukturieren. 3 Layout Als Layout bezeichnet man allgemein die Anordnung von Steuerelementen auf der Benutzeroberfläche. Interessant wird die Angelegenheit vor allem, wenn beispielsweise der Benutzer die Fenstergröße ändert oder eine Labelbeschriftung zu groß wird und die Oberfläche zur Laufzeit angepasst werden muss, um trotzdem alle Informationen in angemessener Weise zu repräsentieren. An dieser Stelle kommen die WPF-Layout-Panels ins Spiel. Sie ermöglichen es Elemente im Fenster relativ zueinander anzuordnen und kümmern sich zum Beispiel darum, dass wenn sich die Aufschrift eines Labels ändert alle nötigen Größenverhältnisse der Oberfläche angepasst werden. Daraus resultierend ist es in WPF nicht üblich einzelne Elemente, wie noch bei Win- Forms ursprünglich vorgesehen, nach absoluten Koordinaten anzuordnen. Stattdessen ist der Standardansatz immer die Verwendung eines passenden Layoutpanels. Die folgenden Abschnitte stellen die verfügbaren Panels jeweils kurz vor.

5 3.1 Das StackPanel Das StackPanel ordnet Elemente entweder in einem horizontalen oder vertikalen Stapel an. Mit der Orientation-Eigenschaft des Stackpanels lässt sich festlegen, ob die Elemente vertikal oder horizontal ausgerichtet werden. Zur Beeinflussung der Anordnung eines Steuerelements im Beispiel des vertikalen Stapels dient unter anderem die sogenannte HorizontalAlignment-Eigenschaft des jeweiligen Controls dazu, es links, rechts, zentriert oder gestreckt auszurichten. 3.2 Das WrapPanel Ein weiterer Layout-Container ist das sogenannte WrapPanel, dass es ermöglicht Elemente in einer einzigen Reihe anzuordnen, wobei Elemente, die nicht mehr Platz haben, automatisch in die nächste Reihe umgebrochen werden. Jede Zeile wird dabei groß genug gemacht, um das höchste Steuerelement aufnehmen zu können, niedrigere Elemente werden entsprechend ihres Alignments darin ausgerichtet. 3.3 Das DockPanel Das DockPanel ermöglicht es, Elemente an eine der vier Seiten des Containers anzuheften. Ein Standardbeispiel in einer echten Anwendung wären ToolBox-Leisten, die sich häufig am oberen oder linken Rand eines Fensters befinden. Mit Hilfe des Attached Properties Dock des DockPanels, können die einzelnen Steuerelemente entsprechend angeordnet werden. Hierbei spielt die Reihenfolge der Steuerelemente eine Rolle: Fügt man zuerst ein Steuerelement ein, das oben andockt, nimmt es die gesamte Breite des Fensters ein. Danach eingefügte Steuerelemente, die zum Beispiel links angedockt werden, bekommen den restlichen Platz auf dieser Seite und so weiter. 3.4 Das Grid Das Grid-Layout ist der mächtigste aller Layout-Container. Er teilt den zu verwaltenden Platz in Zeilen und Spalten auf und jedem Kindelement können schließlich ein oder mehrere Zellen in diesem Gitter zugeordnet werden. Auf diese Art und Weise sind ausgefallene Layouts möglich, vor allem durch Schachteln von Grids und den einfacheren Layout- Containern können so nahezu beliebige Anordnungen erreicht werden. Abbildung 1 zeigt das Layout einer einfachen Beispielanwendung Filmsammlung. Wie durch die roten Linien angedeutet, besteht das Layout aus einem äußeren 3x3-Grid. Die gesamte mittlere Spalte wird von einem GridSplitter beansprucht, der es dem Benutzer ermöglicht das Verhältnis von linker zu rechter Seite zu ändern. Links und rechts des

6 Abbildung 1: Das Grid-Layout Splitters sind in der obersten Zeile Labels eingefügt, in der linken Spalte füllt eine ListBox die verbliebenen zwei Zeilen. Rechts ist unter dem Label ein weiteres Grid eingefügt, welches die nötigen Textfelder und Labels enthält, darunter befindet sich ein FlowPanel zur Ausrichtung der beiden Buttons. So sieht der Anfang einer Grid-Layout-Definition für gewöhnlich in XAML aus: <Grid Name="gridMain" Margin="3"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="1*"/> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="3*"/> </Grid.ColumnDefinitions>...Steuerelemente... </Grid> Im Grid.Row(/Column)Definitions-Abschnitt wird die benötigte Zeilen- und Spaltenzahl festgelegt, die Breite der Spalten (beziehungsweise analog Höhe der Zeilen) kann auf drei unterschiedliche Arten festgelegt werden: Auto legt fest, dass die Spalte genau so breit ist, dass alle Elemente Platz haben. Das Zusammenspiel der Breitenangaben 1* und 3* sorgt dafür, dass die dritte Spalte, wenn mehr Platz entsteht (zum Beispiel durch eine Vergrößerung des Fensters) dreimal so stark wächst wie die erste. Zuletzt gäbe es die Möglichkeit eine feste Zahl an Einheiten für die Breite anzugeben.

7 Die einzelnen Kindelemente können mit Hilfe der Attached Properties Row, Column, RowSpan und ColumnSpan angeordnet werden. Die ersten legen dabei fest welcher Zelle das Element zugeordnet ist, die anderen beiden, über wie viele Zeilen und Spalten es sich ausbreitet. 3.5 UniformGrid und Canvas UniformGrid und Canvas sind spezialisierte Layout-Container, die im Vergleich zu den bereits erwähnten seltener Verwendung finden. Das UniformGrid teilt ein Gebiet in ein Raster aus lauter gleich großen Zeilen und Spalten auf, das Canvas dient zur Anordnung von Elementen nach absoluten Koordinaten, was nur in Spezialfällen (zum Beispiel im Zusammenhang mit komplexen Animationen) Sinn macht. 4 Styles und Control Templates Nach den grundsätzlichen Möglichkeiten zur Anordnung von Steuerelementen kommen wir nun zu den Möglichkeiten, die WPF anbietet um die einzelnen Elemente nahezu beliebig anzupassen: Styles und Control Templates. Damit sind umfangreiche Änderungen möglich, ohne dazu die zugehörige Programmlogik neu schreiben zu müssen. 4.1 Styles Styles ermöglichen es dem Designer in XAML einzelne Eigenschaften eines Steuerelements zu ändern und dem Element so ein neues Aussehen zu geben. Als Beispiel betrachten wir zunächst einen einfachen Style, der die Schrift eines Labels ändert: <Style x:key="labelheaderstyle"> <Style.Setters> <Setter Property="Label.FontSize" Value="14"/> <Setter Property="Label.FontWeight" Value="Bold"/> <Setter Property="Label.FontFamily" Value="TimesNewRoman"/> <Setter Property="Label.Foreground"> <Setter.Value> <LinearGradientBrush > <GradientStop Color="Black" Offset="0"/> <GradientStop Color="Black" Offset="0.66"/> <GradientStop Color="Black" Offset="1"/> </LinearGradientBrush> </Setter.Value> </Setter>

8 </Style.Setters> </Style> In der ersten Zeile wird dem Style mit x:key="labelheaderstyle" ein Name zugewiesen. Ansonsten enthält die Styledefinition eine Reihe von sogenannten Settern, die der Style.Setters-Sammlung hinzugefügt werden. Jeder der Setter enthält ein Property-Attribut, das festlegt, welche Eigenschaft geändert werden soll und ein Value- Attribut, das den neuen Wert bestimmt. Dieses kann auch komplex sein, und wird dazu in ein eigenes Setter.Value-Tag eingebaut. Im Beispiel ist das ein LinearGradientBrush für die Foreground-Eigenschaft, der einen gleichmäßigen Farbverlauf zwischen den Farben an bestimmten Offsets ermöglicht, in diesem Fall allerdings nur von schwarz über schwarz nach schwarz. Warum das so Sinn machen kann, dazu gleich mehr. Zunächst aber zur Frage, wo denn nun der Nutzen von Styles liegt, man könnte die Eigenschaften wie Schriftgröße und -farbe schließlich auch direkt in der Oberflächendefinition des Layouts ändern, was sogar weniger Schreibaufwand verursacht. Der große Vorteil von Styles ist deren Wiederverwendbarkeit: den einmal definierten Style kann man beliebig vielen Steuerelementen zuweisen, zum Beispiel allen, die eine Überschrift darstellen. Und wenn man sich späer zu einer Umgestaltung entschließt, muss man die Änderungen nur an einer zentralen Stelle - dem Style - vornehmen. Styles werden als Ressourcen angelegt. Auf das Ressourcenmanagement wird an dieser Stelle nicht näher eingegangen, näheres dazu findet sich zum Beispiel unter [WEB10a]. Wie weist man nun aber einem Steuerelement einen speziellen Style zu? Dazu gibt es zwei grundsätzliche Ansätze: die erste Möglichkeit ist, die Style-Eigenschaft des Steuerelements zu setzen: <Label Content="Filmdaten" (...) Style="{StaticResource LabelHeaderStyle}"/> Auf diese Art und Weise wird der LabelHeaderStyle als Ressource geladen und dem Label zugewiesen. Die zweite Möglichkeit ist, Styles automatisch allen Elementen eines Typs zuzuweisen. Dazu muss die TargetType-Eigenschaft gesetzt werden, und der Style darf keinen Namen erhalten: <Style TargetType="Button"> (...) </Style > Styles können allerdings mehr als nur einzelne Eigenschaften statisch verändern, sie können nämlich durch sogenannte Style-Trigger auf verschiedene Events reagieren und auf diese Art und Weise zum Beispiel einen MouseOver-Effekt erzeugen: <Style>...Setter... <Style.Triggers> <EventTrigger RoutedEvent="Mouse.MouseEnter">

9 <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <ColorAnimation Storyboard.TargetProperty= "Foreground.GradientStops[1].Color" To="BurlyWood" Duration="0:0:0.5"/> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> <EventTrigger RoutedEvent="Mouse.MouseLeave">...rückgängig machen... </EventTrigger> </Style.Triggers> </Style>. Dieser Style enthält einen EventTrigger der ausgelöst wird, sobald der Mauszeiger über dem Steuerelement ist. Als ausgeführte Aktion wird eine Animation festgelegt (in XAML sind Animationen immer in ein Storyboard eingebettet), die die Farbe des mittleren Offset (vom ursprünglichen Schwarz) in 0.5 Sekunden nach BurlyWood ändert. Dadurch lässt sich eine Art Aufglüheffekt erzeugen. Um diesen (dauerhaften) Effekt wieder rückgängig zu machen, ist es sinnvoll auch den MouseLeave-Event zu behandeln. Styles bieten bereits vielfältige Möglichkeiten zur Anpassung einzelner Controls. Will man ein Steuerelement jedoch komplett umgestalten und nicht nur einzelne Eigenschaften ändern, greift man auf Control Templates zurück, die im nächsten Kapitel vorgestellt werden. 4.2 Control Templates In WPF sind alle Steuerelemente intern aus kleineren Teilelementen zusammengesetzt, so besteht ein Button aus einem Rahmen, in den ein ContentPresenter eingebettet ist, der die Aufschrift darstellt. Dieser interne Zusammenbau wird im Gegensatz zum logischen Aufbau einer Oberfläche (ein Fenster enthält ein Layout, welches Steuerelemente enthält) als Visual Tree bezeichnet (näheres dazu zum Beispiel hier: [Sam10]). Möchte man ein Steuerelement also grundlegend umbauen muss es eine Möglichkeit geben diesen Visual Tree zu verändern. Control Templates bieten diese und wir werden sie im Folgenden benutzen um den Standardbutton anzupassen. Konkret soll der Button deutlich abgerundete Ecken erhalten sowie eine andere Rahmen- und Hintergrundfarbe, die sich dynamisch anpasst: So soll zum Beispiel ein Button über dem der Mauszeiger ist dunkler werden und auch auf Klicks optisch reagieren. Das nötige Control Template sieht wie folgt aus: <Style TargetType="Button">

10 ...beliebige (Style)Setter möglich... <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Button"> <Border TextBlock.Foreground= "{TemplateBinding Foreground}" x:name="border" CornerRadius="8" BorderThickness="1"> <Border.BorderBrush>... </Border.BorderBrush> <Border.Background>... </Border.Background> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:name="commonstates"> <VisualStateGroup.Transitions> <VisualTransition GeneratedDuration= "0:0:0.5"/> <VisualTransition GeneratedDuration="0" To="Pressed" /> </VisualStateGroup.Transitions> <VisualState x:name="normal" /> <VisualState x:name="mouseover">...mouseover-aussehen festlegen... </VisualState>... "Disabled" und "Pressed"... </VisualStateGroup> </VisualStateManager.VisualStateGroups> <ContentPresenter Margin="{TemplateBinding Padding}" HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True" /> </Border> <ControlTemplate.Triggers>...auch Trigger möglich... </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> Das erste, was hierbei vielleicht auffällt ist, dass das Control Template in einen Style eingebettet ist. Das ist gängige Praxis und ermöglicht vor allem eine automatische Template- Zuweisung an alle Buttons (TargetType-Eigenschaft des Styles). Das neue Control Template wird der Template-Eigenschaft des Steuerelements zugewiesen. Im tatsächlichen Control Template wird nun der Aufbau des Buttons festgelegt, in diesem Fall genügt uns ein Rahmen mit abgerundeter Ecke und den entsprechenden Farbeigenschaften. Der Rah-

11 men enthält wiederum einen ContentPresenter und außerdem einen VisualStateManager, dazu gleich mehr. Sogenannte Template Bindings erlauben es eine interne Eigenschaft, wie zum Beispiel die TextBlock.Foreground-Eigenschaft an die externe Eigenschaft Foreground des Buttons zu binden: das bedeutet, wenn der Designer in XAML dem Button einen anderen Vordergrund zuweist, wird diese Zuweisung an den TextBlock weitergeleitet. Der VisualStateManager schließlich bietet eine einfache Möglichkeit für einzelne Zustände wie MouseOver oder Clicked entsprechende Eigenschaften zu setzen, über Transitions können die Übergänge zwischen diesen Zuständen feiner geregelt werden. Im Beispiel sollen die Übergänge zwischen den einzelnen Zuständen jeweils eine halbe Sekunde dauern, außer bei einem Klick (To:Pressed), der sofort angezeigt wird. Abbildung 2 zeigt die angepasste Benutzeroberfläche mit Überschriftlabels und neuen Buttons, sowie einem angepassten Hintergrund mit Farbverlauf und leicht durchsichtigen Textfeldern. Abbildung 2: Filmsammlung mit benutzerdefiniertem Style Zum Abschluss bleibt noch zu sagen, dass das Buttonbeispiel noch ein recht einfaches Control Template ist, da ein Button prinzipiell nur eine logische Funktion hat. Möchte man dagegen zum Beispiel eine ScrollBar umgestalten muss man deutlich mehr beachten, da sie aus mehreren Komponenten, wie einem Balken, einem Slider und den Pfeiltasten zusammengesetzt ist und somit von der Anwendungslogik gewisse Vorgaben an ein eigenes Control Template gestellt werden. Ein sehr guter Einstiegspunkt für eigene Templates ist das Microsoft SimpleStyles-Beispielprojekt, das für jedes Standardcontrol ein übersichtliches, angepasstes Control Template enthält. Das Beispiel steht hier zum Download bereit: [WEB10b].

12 5 Data Binding und Data Templates Nachdem wir nun schon gesehen haben was WPF im Gegensatz zu Windows Forms in Sachen Oberflächenanpassung alles kann, soll nun auch noch ein Blick auf Datenbindung in WPF geworfen werden. Datenbindung ist ein recht weitläufiger Begriff, im aktuellen Zusammenhang bedeutet es so viel wie irgendeine Art von Daten an ein Steuerelement auf der Benutzeroberfläche zu binden. 5.1 Data Binding Die einfachste Art von Data Binding in WPF wäre es beispielsweise eine bestimmte (Dependency) Property eines Controls an eine andere Eigenschaft eines zweiten Controls zu binden. So ist es zum Beispiel möglich ein Slider-Control mit der Schriftgröße eines Labels so zu verknüpfen, dass sich die Schriftgröße des Labels automatisch ändert, sobald der Benutzer den Slider bewegt. Die interessantere Art der Datenbindung ist es, im Hintergrund von der Programmlogik gespeicherte Daten mit einem oder mehreren Steuerelementen zu verknüpfen. Hierzu wollen wir uns die Filmsammlung noch einmal ansehen und konkret die Textfelder auf der rechten Seite mit den richtigen Werten füllen, je nachdem, welcher Film in der ListBox ausgewählt wurde. Das funktioniert in WPF überraschend einfach, wie im Folgenden dargestellt wird. Die Anwendung soll im Hintergrund Film-Objekte bereitstellen, die alle für einen einzelnen Film nötigen Daten kapseln. In diesem einfachen Beispiel seien das fullname, short- Name, producers, director, writers, year und number. Um eine Datenbindung zu einem Film-Objekt nutzen zu können, müssen all diese Eigenschaften als public property zur Verfügung gestellt werden, der nötige C#-Code sieht wie folgt aus: namespace VideoLibrary { class Film { private string fullname; public string FullName { get { return fullname; } set { fullname = value;} } //... restliche Properties (shortname, director...) } } Diese Daten sind zum Beispiel in einer Datenbank abgelegt, die Zugriffsfunkionalität darauf sei in einer Klasse DataStore abgelegt. Um sie nun mit der Oberfläche zu verknüpfen muss in der MainWindow-Klasse noch ein wenig Code geschrieben werden:

13 public partial class MainWindow : Window { DataStore ds; List<Film> films; public MainWindow() { InitializeComponent(); ds = new DataStore(); films = ds.getfilms(); listboxfilms.itemssource = films; } } Das DataStore-Objekt liefert eine Liste von Filmen zurück, die der ListBox als Datenquelle zugewiesen wird. Als nächstes wird in XAML eine DataBinding-Verknüpfung festgelegt, um die Textfelder mit der jeweiligen Filmeigenschaft zu verknüpfen: <TextBox Name="textBoxTitleComplete" (...) Text="{Binding Path=FullName}" /> Anstatt also der Texteigenschaft einen statischen String zuzuweisen wird festgelegt, dass sie mit dem FullName-Property der aktuellen Datenquelle verbunden werden soll. Bleibt zu guter Letzt noch das Setzen der Datenquelle. Das ginge entweder über die Angabe einer Quelle im Binding-Ausdruck, oder aber über einen DataContext. Der große Vorteil des DataContext ist, dass Kindelemente (zum Beispiel in einem Grid), die selber keinen DataContext festlegen, automatisch im Kontext des Containers stehen. Kurz: durch setzen eines DataContext für das Grid, haben alle Textfelder die richtige Datenquelle: <Grid Name="gridMain" DataContext= "{Binding ElementName=listBoxFilms, Path=SelectedItem}" > (...) </Grid > Das war auch schon alles: wenn nun der Benutzer in der Liste einen Film auswählt, werden die Textfelder mit den richtigen Werten gefüllt. Und es geht noch mehr: alle Änderungen, die an den Texten vorgenommen werden, werden automatisch in die Filmliste im Hintergrund übernommen. Das einzige Problem ist noch, dass die Liste selbst nicht weiß, wie sie ein Film-Objekt darstellen soll, sie ruft deshalb einfach auf jedes einzelne Objekt die.tostring()-methode auf, und zeigt jeweils nur VideoLibrary.Film an. Eine erste

14 Abhilfe wäre es diese Methode für die Film-Klasse zu überschreiben. WPF bietet jedoch mit sogennanten Data Templates ein deutlich mächtigeres Werkzeug für diese Aufgabe. 5.2 Data Templates Mit Data Templates lässt sich für das einzelne Item einer Liste (oder auch eines TreeViews) ganz detailliert der Aufbau festlegen. Im Rahmen eines einfachen Beispiels soll dazu in der Liste von jedem Film der Kurzname und leicht eingerückt der Regisseur dargestellt werden, eingebettet in einen hübschen Rahmen. Das Template in XAML sieht wie folgt aus: <DataTemplate x:key="filmdatatemplate"> <Border CornerRadius="4" BorderThickness="1" Margin="3"> <Grid Margin="2"> (...Grid.Row Definitionen...) <TextBlock Grid.Row="0" FontWeight="Bold" Text="{Binding Path=ShortName}"/> <TextBlock Grid.Row="1" Text="{Binding Path=Directors}" Margin="4, 0, 0, 0" HorizontalAlignment="Left"/> </Grid> </Border> </DataTemplate> Es werden die zwei nötigen Textfelder mit Hilfe eines Grids in den Rahmen eingebettet. Die Text-Eigenschaft wird jeweils an die entsprechende Filmeigenschaft gebunden, nur so kann jedes Listenelement die richtigen Daten anzeigen. Abschließend muss der ListBox nun noch dieses Data Template zugewiesen werden: <ListBox Name="listBoxFilms" ItemTemplate="{StaticResource FilmDataTemplate}" HorizontalContentAlignment="Stretch" (...) /> Als Ergebnis erhalten wir nun also eine vollständige, editierbare Filmauflistung, wie in Abbildung 3 dargestellt. 6 Zusammenfassung Die im Rahmen dieser Arbeit vorgestellten Features sollen einen ersten Überblick darüber geben, welche Möglichkeiten WPF im Vergleich zu WinForms bietet und als Anregungung

15 Abbildung 3: Filmsammlung mit überarbeiteter Liste zu eigenen Experimenten dienen. Eine halbwegs vollständige und tiefgehende Abhandlung von WPF ist an dieser Stelle nicht möglich und würde Bücher füllen. Hier verweise ich deshalb auf die angegebene Literatur (hauptsächlich [Mac97]) und Recherche im Internet und hoffe, dass ich zumindest ein wenig das Interesse an der Windows Presentation Foundation wecken konnte. 7 Literaturverzeichnis Literatur [Mac97] Matthew MacDonald. Pro WPF in C#2008. Apress, [Sam10] [Sch09] Jitendra Sampathirao. Logical Tree and Visual Tree in WPF. Default.aspx, Stand: Holger Schwichtenberg. Microsofts Visual Studio 2010 Beta 2 - eine Querschau. Microsofts-Visual-Studio-2010-Beta-2-eine-Querschau html, [WEB10a] WEBSITE. Resources Overview. Stand: [WEB10b] WEBSITE. WPF Documentation Samples. com/wpfsamples\#controlcustomization, Stand:

GUI-Programmierung 2 - WPF

GUI-Programmierung 2 - WPF GUI-Programmierung 2 - WPF Proseminar Objektorientiertes Programmieren mit.net und C# Alexander Aumann Institut für Informatik Software & Systems Engineering Übersicht Einleitung und Unterschiede zu WindowsForms

Mehr

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente Dr. Beatrice Amrhein Überblick Die Architektur WPF Projekt erstellen Steuerelemente einfügen Eigenschaften von Steuerelementen ändern Nach

Mehr

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

WPF Bindung. Dr. Beatrice Amrhein

WPF Bindung. Dr. Beatrice Amrhein WPF Bindung Element- und Daten-Bindung Dr. Beatrice Amrhein Überblick Element-Bindung via Eigenschaften-Editor Grenzen des Eigenschaften Editors Die C# Klasse Binding Bindung an C# Objekte 2 Einführung

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

WordPress. Dokumentation

WordPress. Dokumentation WordPress Dokumentation Backend-Login In das Backend gelangt man, indem man hinter seiner Website-URL einfach ein /wp-admin dranhängt www.domain.tld/wp-admin Dabei gelangt man auf die Administrationsoberfläche,

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller Proseminar: Website-Managment-System NetObjects Fusion von Christoph Feller Netobjects Fusion - Übersicht Übersicht Einleitung Die Komponenten Übersicht über die Komponenten Beschreibung der einzelnen

Mehr

12. Dokumente Speichern und Drucken

12. Dokumente Speichern und Drucken 12. Dokumente Speichern und Drucken 12.1 Überblick Wie oft sollte man sein Dokument speichern? Nachdem Sie ein Word Dokument erstellt oder bearbeitet haben, sollten Sie es immer speichern. Sie sollten

Mehr

Outlook Erstellen einer E-Mail aus einer HTML - Vorlage INHALT

Outlook Erstellen einer E-Mail aus einer HTML - Vorlage INHALT Outlook Erstellen einer E-Mail aus einer HTML - Vorlage INHALT LADEN DER VORLAGE 2 Öffnen Sie Outlook 2 Klicken Sie auf EXTRAS >> OPTIONEN 2 Im Optionenfeld von Outlook folgend Sie den Schritten 2 Fenster

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

3. GLIEDERUNG. Aufgabe:

3. GLIEDERUNG. Aufgabe: 3. GLIEDERUNG Aufgabe: In der Praxis ist es für einen Ausdruck, der nicht alle Detaildaten enthält, häufig notwendig, Zeilen oder Spalten einer Tabelle auszublenden. Auch eine übersichtlichere Darstellung

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Microsoft Visual Studio Community 2015

Microsoft Visual Studio Community 2015 Microsoft Visual Studio Community 2015 Visual Studio Community 2015 ist eine kostenlose IDE mit leistungsfähigen Programmier- und Entwicklungswerkzeugen für Windows, ios und Android. Sie ist für einzelne

Mehr

Animationen erstellen

Animationen erstellen Animationen erstellen Unter Animation wird hier das Erscheinen oder Bewegen von Objekten Texten und Bildern verstanden Dazu wird zunächst eine neue Folie erstellt : Einfügen/ Neue Folie... Das Layout Aufzählung

Mehr

Microsoft Access 2013 Navigationsformular (Musterlösung)

Microsoft Access 2013 Navigationsformular (Musterlösung) Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Access 2013 Navigationsformular (Musterlösung) Musterlösung zum Navigationsformular (Access 2013) Seite 1 von 5 Inhaltsverzeichnis Vorbemerkung...

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Jederzeit Ordnung halten

Jederzeit Ordnung halten Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das

Mehr

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.

Mehr

Satzhilfen Publisher Seite Einrichten

Satzhilfen Publisher Seite Einrichten Satzhilfen Publisher Seite Einrichten Es gibt verschiedene Möglichkeiten die Seite einzurichten, wir fangen mit der normalen Version an, Seite einrichten auf Format A5 Wählen Sie zunächst Datei Seite einrichten,

Mehr

Seite 1. Datum einfügen

Seite 1. Datum einfügen Seite 1 Den Text zu schreiben ist einerseits Abhängig von der DIN 5008, an die man sich halten sollte. Andererseits sind Schriftart und Aussehen durch die schnell erkennbaren Symbole leicht zu gestalten.

Mehr

Das Design: Themen und Varianten anwenden

Das Design: Themen und Varianten anwenden Das Design: Themen und Varianten anwenden 1 a In Kapitel 1 haben Sie schon gesehen, wie einfach Sie in PowerPoint eine Designvorlage anwenden können. Lesen Sie hier, wie Sie aus noch mehr Vorlagen auswählen

Mehr

Einkaufslisten verwalten. Tipps & Tricks

Einkaufslisten verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Grundlegende Informationen 3 1.2 Einkaufslisten erstellen 4 1.3 Artikel zu einer bestehenden Einkaufsliste hinzufügen 9 1.4 Mit einer Einkaufslisten einkaufen 12 1.4.1 Alle

Mehr

Word 2010 Grafiken exakt positionieren

Word 2010 Grafiken exakt positionieren WO.009, Version 1.2 10.11.2014 Kurzanleitung Word 2010 Grafiken exakt positionieren Wenn Sie eine Grafik in ein Word-Dokument einfügen, wird sie in die Textebene gesetzt, sie verhält sich also wie ein

Mehr

Herstellen von Symbolen mit Corel Draw ab Version 9

Herstellen von Symbolen mit Corel Draw ab Version 9 Herstellen von Symbolen mit Corel Draw ab Version 9 Einleitung : Icon Design-Überblick: 1) Gestalten in Corel Draw 10.0 3) Vorlage für Photopaint für Import von Corel 4) Einfügen in die PSD-Datei und Bearbeiten

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE UND ZEILENABSTAND Word 2010 und 2007 Jedes neue leere Dokument, das mit Word 2010 erstellt wird, basiert auf einer Dokumentvorlage mit dem Namen Normal.dotx.

Mehr

Navigieren auf dem Desktop

Navigieren auf dem Desktop Navigieren auf dem Desktop Sie kennen Windows 7 noch nicht? Obwohl Windows 7 viel mit den Versionen von Windows gemein hat, die Ihnen ggf. bereits vertraut sind, werden Sie möglicherweise an der einen

Mehr

Anleitung für den Euroweb-Newsletter

Anleitung für den Euroweb-Newsletter 1. Die Anmeldung Begeben Sie sich auf der Euroweb Homepage (www.euroweb.de) in den Support-Bereich und wählen dort den Punkt Newsletter aus. Im Folgenden öffnet sich in dem Browserfenster die Seite, auf

Mehr

Hilfe zur Dokumentenverwaltung

Hilfe zur Dokumentenverwaltung Hilfe zur Dokumentenverwaltung Die Dokumentenverwaltung von Coffee-CRM ist sehr mächtig und umfangreich, aber keine Angst die Bedienung ist kinderleicht. Im Gegensatz zur Foto Galeria können Dokumente

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

ECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN 978-3-86249-544-3

ECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN 978-3-86249-544-3 ECDL Europäischer Computer Führerschein Jan Götzelmann 1. Ausgabe, Juni 2014 Modul Präsentation Advanced (mit Windows 8.1 und PowerPoint 2013) Syllabus 2.0 ISBN 978-3-86249-544-3 ECDLAM6-13-2 3 ECDL -

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

Mehr

Comic Life 2.x. Fortbildung zum Mediencurriculum

Comic Life 2.x. Fortbildung zum Mediencurriculum Comic Life 2.x Fortbildung zum Mediencurriculum - 1 - Comic Life Eine kurze Einführung in die Bedienung von Comic Life 2.x. - 2 - Starten von Comic Life Bitte starte das Programm Comic Life. Es befindet

Mehr

Text Formatierung in Excel

Text Formatierung in Excel Text Formatierung in Excel Das Aussehen des Textes einer oder mehrerer Zellen kann in Excel über verschiedene Knöpfe beeinflusst werden. Dazu zuerst die betroffenen Zelle(n) anwählen und danach den entsprechenden

Mehr

ELO Print&Archive so nutzen Sie es richtig

ELO Print&Archive so nutzen Sie es richtig ELO Print&Archive so nutzen Sie es richtig Die Einrichtung Ihres ersten Dokumententyps Im folgenden Beispiel möchten wir Ihnen genauer erläutern, wie Sie das neue Modul ELO Print&Archive, das automatisch

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Die Formatierungsregeln (die so genannte Wiki-Syntax) für Texte in DokuWiki sind zu großen Teilen die selben, wie in anderen Wiki-Systemen.

Die Formatierungsregeln (die so genannte Wiki-Syntax) für Texte in DokuWiki sind zu großen Teilen die selben, wie in anderen Wiki-Systemen. DokuWiki Kurzanleitung DokuWiki ein sehr einfach zu installierendes und anzuwendendes Wiki und bietet einige Funktionen, welche das Erstellen von Hypertexten, Dokumentationen und Präsentation von Projekten

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Individuelle Formulare

Individuelle Formulare Individuelle Formulare Die Vorlagen ermöglichen die Definition von Schnellerfassungen für die Kontenanlage sowie für den Im- und Export von Stammdaten. Dabei kann frei entschieden werden, welche Felder

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

WINDOWS PRESENTATION FOUNDATION (WPF) Martin Kühn 08.03.2012

WINDOWS PRESENTATION FOUNDATION (WPF) Martin Kühn 08.03.2012 WINDOWS PRESENTATION FOUNDATION (WPF) Martin Kühn 08.03.2012 Übersicht Theorie hinter WPF Grundlagen von XAML Dependency Properties Templates Vortragsdauer: ca. 30 Minuten THEORIE HINTER WPF Theorie hinter

Mehr

Die Dateiablage Der Weg zur Dateiablage

Die Dateiablage Der Weg zur Dateiablage Die Dateiablage In Ihrem Privatbereich haben Sie die Möglichkeit, Dateien verschiedener Formate abzulegen, zu sortieren, zu archivieren und in andere Dateiablagen der Plattform zu kopieren. In den Gruppen

Mehr

HTML Programmierung. Aufgaben

HTML Programmierung. Aufgaben HTML Programmierung Dr. Leander Brandl BRG Keplerstraße - A-8020 Graz Universität Graz - Institut für Experimentalphysik Fachdidaktik der Physik http://w4.brgkepler.asn-graz.ac.at 1. Die erste Web-Seite

Mehr

Nach der Installation kann es auch schon losgehen. Für unseren Port Scanner erstellen wir zunächst ein neues Projekt:

Nach der Installation kann es auch schon losgehen. Für unseren Port Scanner erstellen wir zunächst ein neues Projekt: Ein Port Scanner ist eine gute Möglichkeit den eigenen Server auf offene Ports zu scannen. Zu viele nicht benötigte und offene Ports können auf Ihrem Server und auf Ihrem Computer ein Sicherheitsrisiko

Mehr

PowerPoint 2010 Mit Folienmastern arbeiten

PowerPoint 2010 Mit Folienmastern arbeiten PP.002, Version 1.1 07.04.2015 Kurzanleitung PowerPoint 2010 Mit Folienmastern arbeiten Der Folienmaster ist die Vorlage für sämtliche Folien einer Präsentation. Er bestimmt das Design, die Farben, die

Mehr

Eigenen Farbverlauf erstellen

Eigenen Farbverlauf erstellen Diese Serie ist an totale Neulinge gerichtet. Neu bei PhotoLine, evtl. sogar komplett neu, was Bildbearbeitung betrifft. So versuche ich, hier alles einfach zu halten. Ich habe sogar PhotoLine ein zweites

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

PowerPoint: Text. Text

PowerPoint: Text. Text PowerPoint: Anders als in einem verarbeitungsprogramm steht in PowerPoint der Cursor nicht automatisch links oben auf einem Blatt in der ersten Zeile und wartet auf eingabe. kann hier vielmehr frei über

Mehr

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) 3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere

Mehr

2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem

2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem 2 DAS BETRIEBSSYSTEM Themen in diesem Kapitel: Das Betriebssystem Die Windows-Oberfläche Elemente eines Fensters 2.1 Wozu dient das Betriebssystem Das Betriebssystem (engl.: operating system, kurz: OS)

Mehr

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Beiträge erstellen in Joomla Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Abbildung 1 - Kontrollzentrum Von hier aus kann man zu verschiedene Einstellungen

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Das können wir Ihnen versprechen: An der neuen Taskleiste in Windows 7 werden Sie sehr viel Freude haben. Denn diese sorgt

Mehr

Benutzeranleitung Superadmin Tool

Benutzeranleitung Superadmin Tool Benutzeranleitung Inhalt 1 Einleitung & Voraussetzungen... 2 2 Aufruf des... 3 3 Konto für neuen Benutzer erstellen... 3 4 Services einem Konto hinzufügen... 5 5 Benutzer über neues Konto informieren...

Mehr

DOKUMENTATION VOGELZUCHT 2015 PLUS

DOKUMENTATION VOGELZUCHT 2015 PLUS DOKUMENTATION VOGELZUCHT 2015 PLUS Vogelzucht2015 App für Geräte mit Android Betriebssystemen Läuft nur in Zusammenhang mit einer Vollversion vogelzucht2015 auf einem PC. Zusammenfassung: a. Mit der APP

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

MPDS4 EXAMPLE DATENBANK

MPDS4 EXAMPLE DATENBANK MPDS4 EXAMPLE DATENBANK Erste Schritte In diesem Tutorial lernen Sie, wie Sie MPDS4 starten und wie Sie eine Fabrikanlage auf dem Bildschirm anzeigen und mittig ausrichten können. Voraussetzungen Windows

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Zimmertypen. Zimmertypen anlegen

Zimmertypen. Zimmertypen anlegen Zimmertypen anlegen Hier legen Sie Ihre Zimmer an, damit sie auf der Homepage dargestellt werden und online buchbar gemacht werden können. Wobei wir ausdrücklich darauf hinweisen möchten, dass es ganz

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Hinweise zum Übungsblatt Formatierung von Text:

Hinweise zum Übungsblatt Formatierung von Text: Hinweise zum Übungsblatt Formatierung von Text: Zu den Aufgaben 1 und 2: Als erstes markieren wir den Text den wir verändern wollen. Dazu benutzen wir die linke Maustaste. Wir positionieren den Mauszeiger

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED

Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED Mit Google Chrome nach MIT App Inventor suchen. In den Suchergebnissen (siehe unten) auf

Mehr

Was hat sich geändert:

Was hat sich geändert: Homepage-Baukasten Version 2.1.2 In diesem Dokument erfahren Sie die wichtigsten Neuerungen, die Ihnen in der Version 2.1.2 zur Verfügung stehen. Was hat sich geändert: 1. Spaltenfunktion 2. Integration

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

OS Anwendungsbeschreibung

OS Anwendungsbeschreibung Inhalt Einleitung... 2 Start des Programms... 2 Scannen einer neuen Zeitungsseite... 4 Presse-Clipping... 8 Artikel ausschneiden und bearbeiten... 11 Übernahme aus der Zwischenablage... 19 Ausdruck in

Mehr

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

3 Grundlagen. 3.1 Die erste App

3 Grundlagen. 3.1 Die erste App 19 3.1 Die erste App In diesem Abschnitt werden Sie Ihre ersten Schritte in der Windows- Phone-7-Entwicklung machen. Dabei werden Sie eine modifizierte»hallo Welt«-Anwendung schreiben. Daneben lernen Sie

Mehr

Argelander Institut für Astronomie. Persönliche Website

Argelander Institut für Astronomie. Persönliche Website Argelander Institut für Astronomie Persönliche Website Zunächst loggt man sich auf www.astro.uni-bonn.de/typo3 mit seinem AIfA Zugang ein. Nach erfolgreichem Login befindet man sich im Backend des TYPO3

Mehr

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen

Mehr

In diesem Kurs lernen Sie, wie in EXCEL Diagramme erzeugt werden und was Sie dabei beachten sollten.

In diesem Kurs lernen Sie, wie in EXCEL Diagramme erzeugt werden und was Sie dabei beachten sollten. OSZ Wirtschaft und Sozialversicherung Berlin Fach: Rechnungswesen/Datenverarbeitung /Wn EXCEL-Kurs ABSCHREIBUNGEN Lektion: Erstellen von Diagrammen Ziele dieses Kurses: In diesem Kurs lernen Sie, wie in

Mehr

Grafische Benutzeroberfläche mit Glade und Python

Grafische Benutzeroberfläche mit Glade und Python Grafische Benutzeroberfläche mit Glade und Python Grundsätzliches Die grafische Benutzeroberfläche (GUI) wird getrennt von dem Programm erstellt und gespeichert. Zu dieser GUI-Datei wird ein passendes

Mehr

Ebenenmasken Grundlagen

Ebenenmasken Grundlagen Ebenenmasken Grundlagen Was sind Ebenmasken? Was machen sie? Wofür braucht man sie? Wie funktionieren sie? Ebenmasken sind eines der sinnvollsten Tools in anspruchvollen EBV Programmen (EBV = elektronische

Mehr

Handbuch zum Excel Formular Editor

Handbuch zum Excel Formular Editor Handbuch zum Excel Formular Editor Mit diesem Programm können Sie die Zellen von ihrer Excel Datei automatisch befüllen lassen. Die Daten können aus der Coffee Datenbank, oder einer weiteren Excel Datendatei

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

Mehr

Speichern. Speichern unter

Speichern. Speichern unter Speichern Speichern unter Speichern Auf einem PC wird ständig gespeichert. Von der Festplatte in den Arbeitspeicher und zurück Beim Download Beim Kopieren Beim Aufruf eines Programms Beim Löschen Beim

Mehr

Erstellung von Reports mit Anwender-Dokumentation und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0)

Erstellung von Reports mit Anwender-Dokumentation und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0) Erstellung von und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0) In der ArtemiS SUITE steht eine neue, sehr flexible Reporting-Funktion zur Verfügung, die mit der Version 5.0 noch einmal verbessert

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Als Lehrende/r oder Mitwirkende/r einer Veranstaltung können Sie das Wiki unter dem Funktionsreiter + aktivieren und deaktivieren.

Als Lehrende/r oder Mitwirkende/r einer Veranstaltung können Sie das Wiki unter dem Funktionsreiter + aktivieren und deaktivieren. WikiWikiWeb Das automatisch in einer Veranstaltung aktivierte Modul/Plugin Wiki-Web ist eine Variante eines Wiki (hawaiisch für schnell ), in dem es den TeilnehmerInnen möglich ist, direkt in der angewählten

Mehr

Kommunikations-Management

Kommunikations-Management Tutorial: Wie kann ich E-Mails schreiben? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory E-Mails schreiben können. In myfactory können Sie jederzeit schnell und einfach E-Mails verfassen egal

Mehr

Erstellen eines Wordpress-Blogs

Erstellen eines Wordpress-Blogs Erstellen eines Wordpress-Blogs Inhalt 1 Einen Wordpress-Blog erstellen... 3 2 Wordpress konfigurieren... 5 2.1 Wordpress-Anmeldung... 5 2.2 Sprache einstellen... 7 2.3 Einen neuen Artikel verfassen...

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

Dokumentenverwaltung. Copyright 2012 cobra computer s brainware GmbH

Dokumentenverwaltung. Copyright 2012 cobra computer s brainware GmbH Dokumentenverwaltung Copyright 2012 cobra computer s brainware GmbH cobra Adress PLUS ist eingetragenes Warenzeichen der cobra computer s brainware GmbH. Andere Begriffe können Warenzeichen oder anderweitig

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE Dezernat 6 Abteilung 4 Stand: 14.Oktober 2014 Inhalt 1. Einleitung 3 2. Räume & gemeinsame Termine finden 3 3. Rüstzeit 8 4. FAQ: Oft gestellte

Mehr