Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort zur 6. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Das Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Strukturen und Enumerationen
7 Fehlerbehandlung und Debugging
8 Auflistungsklassen (Collections)
9 Generics – Generische Datentypen
10 Weitere C#-Sprachfeatures
11 LINQ
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 XML
15 Multithreading und die Task Parallel Library (TPL)
16 Einige wichtige .NET-Klassen
17 Projektmanagement und Visual Studio 2012
18 Einführung in die WPF und XAML
19 WPF-Layout-Container
20 Fenster in der WPF
21 WPF-Steuerelemente
22 Elementbindungen
23 Konzepte von WPF
24 Datenbindung
25 Weitere Möglichkeiten der Datenbindung
26 Dependency Properties
27 Ereignisse in der WPF
28 WPF-Commands
29 Benutzerdefinierte Controls
30 2D-Grafik
31 ADO.NET – Verbindungsorientierte Objekte
32 ADO.NET – Das Command-Objekt
33 ADO.NET – Der SqlDataAdapter
34 ADO.NET – Daten im lokalen Speicher
35 ADO.NET – Aktualisieren der Datenbank
36 Stark typisierte DataSets
37 Einführung in das ADO.NET Entity Framework
38 Datenabfragen des Entity Data Models (EDM)
39 Entitätsaktualisierung und Zustandsverwaltung
40 Konflikte behandeln
41 Plain Old CLR Objects (POCOs)
Stichwort

Download:
- Beispiele, ca. 62,4 MB

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Visual C# 2012 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2012

Visual C# 2012
Rheinwerk Computing
1402 S., 6., aktualisierte und erweiterte Auflage 2013, geb., mit DVD
49,90 Euro, ISBN 978-3-8362-1997-6
Pfeil 21 WPF-Steuerelemente
Pfeil 21.1 Die Hierarchie der WPF-Komponenten
Pfeil 21.2 Allgemeine Eigenschaften der WPF-Steuerelemente
Pfeil 21.2.1 Den Außenrand mit der Eigenschaft »Margin« festlegen
Pfeil 21.2.2 Den Innenrand mit der Eigenschaft »Padding« festlegen
Pfeil 21.2.3 Die Eigenschaft »Content«
Pfeil 21.2.4 Die Größe einer Komponente
Pfeil 21.2.5 Die Ausrichtung einer Komponente
Pfeil 21.2.6 Die Sichtbarkeit eines Steuerelements
Pfeil 21.2.7 Die Farbeinstellungen
Pfeil 21.2.8 Die Schriften
Pfeil 21.3 Die unterschiedlichen Schaltflächen
Pfeil 21.3.1 Die Basisklasse »ButtonBase«
Pfeil 21.3.2 Das Steuerelement »Button«
Pfeil 21.3.3 Das Steuerelement »ToggleButton«
Pfeil 21.3.4 Das Steuerelement »RepeatButton«
Pfeil 21.3.5 Das Steuerelement »Checkbox«
Pfeil 21.3.6 Das Steuerelement »RadioButton«
Pfeil 21.4 Einfache Eingabesteuerelemente
Pfeil 21.4.1 Das Steuerelement »Label«
Pfeil 21.4.2 Das Steuerelement »TextBox«
Pfeil 21.4.3 Das Steuerelement »PasswordBox«
Pfeil 21.4.4 Das Steuerelement »TextBlock«
Pfeil 21.5 WPF-Listenelemente
Pfeil 21.5.1 Das Steuerelement »ListBox«
Pfeil 21.5.2 Die »ComboBox«
Pfeil 21.5.3 Das Steuerelement »ListView«
Pfeil 21.5.4 Das Steuerelement »TreeView«
Pfeil 21.5.5 Das Steuerelement »TabControl«
Pfeil 21.5.6 Die Menüleiste
Pfeil 21.5.7 Das Kontextmenü
Pfeil 21.5.8 Symbolleisten
Pfeil 21.5.9 Die Statusleiste
Pfeil 21.6 Weitere Steuerelemente
Pfeil 21.6.1 Das Steuerelement »ToolTip«
Pfeil 21.6.2 Die »Progressbar«
Pfeil 21.6.3 Das Steuerelement »Slider«
Pfeil 21.6.4 Das »GroupBox«-Steuerelement
Pfeil 21.6.5 Das Steuerelement »ScrollViewer«
Pfeil 21.6.6 Das Steuerelement »Expander«
Pfeil 21.6.7 Das Steuerelement »Border«
Pfeil 21.6.8 Die »Image«-Komponente
Pfeil 21.6.9 »Calendar« und »DatePicker« zur Datumsangabe
Pfeil 21.6.10 Das Steuerelement »InkCanvas«
Pfeil 21.7 Das »Ribbon«-Steuerelement
Pfeil 21.7.1 Voraussetzungen für den Zugriff auf das »Ribbon«-Control
Pfeil 21.7.2 Ein kurzer Überblick
Pfeil 21.7.3 Der XAML-Code
Pfeil 21.8 FlowDocuments
Pfeil 21.8.1 Allgemeine Beschreibung eines FlowDocuments
Pfeil 21.8.2 Eigenschaften eines »FlowDocuments«
Pfeil 21.8.3 Die Blöcke eines »FlowDocuments«
Pfeil 21.8.4 Inline-Elemente
Pfeil 21.8.5 »FlowDocuments« mit Code erzeugen
Pfeil 21.8.6 Speichern und Laden eines »FlowDocuments«
Pfeil 21.9 Das Element »FlowDocumentViewer«
Pfeil 21.9.1 Das Anzeigeelement »FlowDocumentScrollViewer«
Pfeil 21.9.2 Das Anzeigeelement »FlowDocumentPageViewer«
Pfeil 21.9.3 Das Anzeigeelement »FlowDocumentReader«
Pfeil 21.10 XPS-Dokumente mit »DocumentViewer«
Pfeil 21.10.1 Allgemeines zum XPS-Format
Pfeil 21.10.2 Beispielprogramm
Pfeil 21.11 Das Steuerelement »RichTextBox«

Rheinwerk Computing - Zum Seitenanfang

21.7 Das »Ribbon«-SteuerelementZur nächsten Überschrift

Endlich ist es so weit, denn endlich wird mit .NET 4.5 ein Steuerelement ausgeliefert, das es schon länger gibt, aber bislang separat installiert werden musste: das Ribbon-Control oder, wie es in der deutschsprachigen Dokumentation auch genannt wird, das Menüband.

Das Menüband ist eine Kombination von Menü und Symbolleiste und wurde erstmals mit Office 2007 eingeführt. Es soll das Auffinden von Funktionen erleichtern und dem Anwender dabei helfen, die Anwendung schneller zu erlernen. Es lässt sich trefflich darüber streiten, ob mit dem Menüband die gesteckten Ziele erreicht werden. Aber diese Diskussion wollen wir an dieser Stelle nicht führen und uns stattdessen ansehen, wie wir das Ribbon-Steuerelement in der WPF einsetzen können.


Rheinwerk Computing - Zum Seitenanfang

21.7.1 Voraussetzungen für den Zugriff auf das »Ribbon«-ControlZur nächsten ÜberschriftZur vorigen Überschrift

In der Toolbox werden Sie das gewünschte Ribbon-Steuerelement nicht finden. Damit Sie es nutzen können, sind vorab einige Schritte erforderlich:

  • Legen Sie im Projektmappen-Explorer einen Verweis auf die Assembly System.Windows.Controls.Ribbon.dll.
  • Im nächsten Schritt ist ein XML-Namespace in der XAML-Datei zu definieren, um auf das Steuerelement im XAML-Code zugreifen zu können, beispielsweise:
    xmlns:ribbon="clr-namespace:System.Windows.Controls.Ribbon;
    assembly=System.Windows.Controls.Ribbon"
  • Es ist noch eine weitere Änderung in der XAML-Datei notwendig. Ersetzen Sie das Element Window durch RibbonWindow (aber vergessen Sie dabei das Namespace-Präfix nicht, also beispielsweise ribbon:RibbonWindow).
  • Geben Sie in der Code-Behind-Datei mit using den Namespace
    System.Windows.Controls.Ribbon
    bekannt, und ändern Sie die Basisklasse von Window in RibbonWindow ab.

Erst jetzt haben Sie alle Voraussetzungen erfüllt und können beginnen.


Rheinwerk Computing - Zum Seitenanfang

21.7.2 Ein kurzer ÜberblickZur nächsten ÜberschriftZur vorigen Überschrift

Sollten Sie erwarten, dass wir dieses durchaus sehr interessante Steuerelement ausgiebig besprechen, dann liegen Sie falsch. Es ist einfach zu mächtig und gestattet zahllose Möglichkeiten, das Layout und auch das Verhalten zur Laufzeit zu beeinflussen. Die vielen Klassen, die zu dem Framework des Ribbon-Controls gehören, legen Zeugnis davon ab. Wir wollen uns daher nur auf das im ersten Moment Wesentliche beschränken. Beabsichtigen Sie, das Ribbon-Steuerelement demnächst in Ihren eigenen Anwendungen einzusetzen, wird die dazugehörige Dokumentation Ihnen sicher viele Fragen beantworten können.

Selbstverständlich möchte ich Ihnen auch ein kleines Beispiel zeigen, an dem wir die Kernelemente des Ribbon erkennen können. Dazu werden wir die XAML-Struktur des in Abbildung 21.33 gezeigten Menübands analysieren.

Abbildung

Abbildung 21.33 Das Menüband der folgenden Betrachtungen

Sie finden das Beispiel auf der Buch-DVD unter \Kapitel 21\RibbonSample.


Rheinwerk Computing - Zum Seitenanfang

21.7.3 Der XAML-CodeZur nächsten ÜberschriftZur vorigen Überschrift

Fenster, die ein Ribbon-Steuerelement enthalten, sind in der WPF nicht vom Typ Window, sondern vom Typ RibbonWindow. Das Menüband selbst, das Ribbon, wird am besten in einem DockPanel in der Position Top angedockt. Im Ribbon können insgesamt bis zu vier unterschiedliche Bereiche festgelegt werden, die wir nun alle kurz ansprechen wollen (siehe auch Abbildung 21.34).

  • RibbonTab: Sicherlich das im ersten Moment auffälligste Merkmal sind die Registerkarten. In den Tabs sind die Steuerelemente enthalten, die die Anwendung steuern. Das Ribbon-Framework bietet viele eigene Steuerelemente an, die alle das Präfix Ribbon haben und auf die Bedürfnisse des Menübands abgestimmt sind.
  • QuickAccessToolBar: Diese Leiste dient dem Schnellzugriff für einige wenige Operationen, die im Grunde genommen in jeder Situation zur Laufzeit vom Anwender ausgeführt werden können. Üblicherweise befinden sich hier drei Schaltflächen: eine zum Speichern und je eine weitere für die Arbeitsschritte Undo und Redo.
  • ApplicationMenu: Das durch diese Eigenschaft beschriebene Element wird in der Reihe der Registerkarten links angezeigt und beschreibt ein Pulldown-Menü, in dem alle allgemeinen Befehle zusammengefasst sind. Die Befehle zum Drucken, zum Speichern und auch zum Beenden der Anwendung sind typisch für dieses Menü.
  • HelpPaneContent: Dieses Element legt den Hilfebereich fest.

Bis auf das Element RibbonTab werden alle anderen drei Bereiche durch gleichnamige Eigenschaften des Ribbon-Controls beschrieben, in denen entsprechende Elemente eingelagert sind.

Abbildung

Abbildung 21.34 Die vier Bereiche eines »Ribbon«-Steuerelements

Ein Blick auf die Gesamtstruktur

Wir sollten uns nun in einem Listing die Struktur des Menübands ansehen. Aus Gründen der Übersichtlichkeit habe ich bewusst darauf verzichtet, bereits an dieser Stelle die Inhalte der aufgeführten Bereiche anzugeben. Sie werden die im Abschnitt zuvor beschriebenen Bereiche sofort erkennen.

<ribbon:RibbonWindow ...
xmlns:ribbon="clr-namespace:System.Windows.Controls.Ribbon;
assembly=System.Windows.Controls.Ribbon">
<DockPanel LastChildFill="True">
<ribbon:Ribbon DockPanel.Dock="Top">
<Ribbon.QuickAccessToolBar>[...]</Ribbon.QuickAccessToolBar>
<Ribbon.ApplicationMenu>[...]</Ribbon.ApplicationMenu>
<Ribbon.HelpPaneContent>[...]</Ribbon.HelpPaneContent>
<RibbonTab Header="Start">[...]</RibbonTab>
<RibbonTab Header="Einfügen">[...]</RibbonTab>
<RibbonTab Header="Optionen">[...]</RibbonTab>
</ribbon:Ribbon>
<StackPanel>
<!-- Inhalte -->
</StackPanel>
</DockPanel>
</ribbon:RibbonWindow>

Listing 21.57 Die Struktur eines kompletten Menübands

Hinter dem Ribbon-Steuerelement ist ein StackPanel angegeben. Dieses dient dazu, alle anderen Elemente aufzunehmen, die von der Anwendung benötigt werden.

Die Leiste für den Schnellzugriff

Sehen wir uns zuerst den Bereich an, der praktisch eine Ergänzung der Titelleiste darstellt und die elementarsten und am häufigsten vom Anwender benutzten Befehle beinhaltet. In der Schnellzugriffsleiste unseres Beispiels sind das drei Schaltflächen. Beachten Sie, dass das Ribbon-Framework eigene Steuerelemente bereitstellt, deren Fähigkeiten auf das Ribbon-Steuerelement hin abgestimmt sind. Im Schnellzugriffsbereich unseres Beispiels sind dazu drei RibbonButton-Elemente definiert, die die für diesen Bereich üblichen Operationen anbieten.

<Ribbon.QuickAccessToolBar>
<RibbonQuickAccessToolBar>
<RibbonButton Label="Save" SmallImageSource="Images/saveHS.png"/>
<RibbonButton Label="Undo"
SmallImageSource="Images/112_ArrowReturnLeft_Blue_16x16_72.png"/>
<RibbonButton Label="Redo"
SmallImageSource="Images/112_ArrowReturnRight_Blue_16x16_72.png"/>
</RibbonQuickAccessToolBar>
</Ribbon.QuickAccessToolBar>

Listing 21.58 Die Menüleiste für den Schnellzugriff

Das Anwendungsmenü

Das aufgeklappte Anwendungsmenü habe ich Ihnen noch nicht gezeigt. Sehen Sie sich daher begleitend zum Listing 21.59 die Abbildung 21.35 an.

<Ribbon.ApplicationMenu>
<RibbonApplicationMenu SmallImageSource="Images/FillDownHS.png" >
<RibbonApplicationMenuItem Header="Neues Dokument"
ImageSource="Images/NewDocumentHS.png" />
<RibbonApplicationMenuItem Header="Öffnen" />
<RibbonApplicationMenuItem Header="Speichern"
ImageSource="Images/saveHS.png"/>
[...]
<RibbonApplicationMenu.AuxiliaryPaneContent>
<RibbonGallery CanUserFilter="False"
ScrollViewer.VerticalScrollBarVisibility="Auto">
<RibbonGalleryCategory Background="Transparent" MaxColumnCount="1">
<RibbonGalleryItem Content="Verbindung zum Internet herstellen"/>
<RibbonGalleryItem Content="Datenverbindungen prüfen"/>
<RibbonGalleryItem Content="Datenübertragung"/>
</RibbonGalleryCategory>
</RibbonGallery>
</RibbonApplicationMenu.AuxiliaryPaneContent>
</RibbonApplicationMenu>
</Ribbon.ApplicationMenu>

Listing 21.59 Der XAML-Code des Anwendungsmenüs

Abbildung

Abbildung 21.35 Das Anwendungsmenü

Das Hilfemenü

Der Menüpunkt, um sich die Hilfe anzeigen zu lassen, repräsentiert den kleinsten Bereich im XAML-Code.

<Ribbon.HelpPaneContent>
<RibbonButton Content="Hilfe" SmallImageSource="Images/Help.png"/>
</Ribbon.HelpPaneContent>

Listing 21.60 Das Hilfemenü

Die Registerkarten

Kommen wir zum Abschluss unserer Betrachtungen zu den Registerkarten, die im Ribbon durch den Typ RibbonTab beschrieben werden. Innerhalb einer Registerkarte können Sie mehrere Gruppen vom Typ RibbonGroup definieren. In der ersten Registerkarte unseres Beispiels (Start) sind es die drei Gruppen Allgemein, Zwischenablage und Einstellungen. Innerhalb der Gruppen sind die Ribbon-Steuerelemente enthalten. Näher eingehen werde ich auf die Steuerelemente nicht.

<RibbonTab Header="Start">
<RibbonGroup Header="Allgemein">
<RibbonButton Label="Neu"
LargeImageSource="Images/NewDocuments_32x32.png" />
<RibbonButton Label="Speichern"
LargeImageSource="Images/base_floppydisk_32.png" />
</RibbonGroup>
<RibbonGroup Header="Zwischenablage">
<RibbonComboBox IsEditable="False"
SmallImageSource="Images/pasteHS.png">
<RibbonGallery SelectedValue="Einfügen" SelectedValuePath="Content"
MaxColumnCount="1">
<RibbonGalleryCategory>
<RibbonGalleryItem Content="Einfügen"/>
<RibbonGalleryItem Content="Inhalte einfügen ..."/>
</RibbonGalleryCategory>
</RibbonGallery>
</RibbonComboBox>
<RibbonButton Label="Ausschneiden"
SmallImageSource="Images/CutHS.png" />
<RibbonButton Label="Kopieren" SmallImageSource="Images/CopyHS.png"/>
</RibbonGroup>
<RibbonGroup Header="Einstellungen">
<RibbonButton Label="Farbe" SmallImageSource="Images/ColorHS.png" />
<RibbonButton Label="Schriftart" SmallImageSource="Images/FontHS.png" />
<RibbonButton Label="Kontrast"
SmallImageSource="Images/EditBrightContrastHS.png" />
</RibbonGroup>
</RibbonTab>
<RibbonTab Header="Media">
<RibbonGroup Header="Einstellungen">
<RibbonButton Label="Mikrofon"
LargeImageSource="Images/Microphone.png" />
<RibbonButton Label="Lautsprecher"
LargeImageSource="Images/base_speaker_32.png" />
<RibbonButton Label="Animieren" SmallImageSource="Images/Animate.png"/>
<RibbonButton Label="Bild anzeigen"
SallImageSource="Images/InsertPictureHS.png" />
</RibbonGroup>
</RibbonTab>
<RibbonTab Header="Optionen"></RibbonTab>

Listing 21.61 Die Registerkarten



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Visual C# 2012

Visual C# 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Rheinwerk-Shop: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: C++ Handbuch






 C++ Handbuch


Zum Rheinwerk-Shop: C/C++






 C/C++


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern