Mit dem ToolBar-Element können Sie einem Fenster auf einfache Weise eine Symbolleiste zuweisen. Je nach Umfang der Anwendung können so einige Symbolleisten zusammenkommen. Diese kann der Benutzer normalerweise selbst organisieren. Allerdings werden die Symbolleisten bei jedem Start wieder so hergestellt, wie es in der XAML-Definition vorgesehen ist. Ändert der Benutzer also die Position von Symbolleisten oder blendet er diese ein oder aus, halten diese Anpassungen immer nur bis zum nächsten Start der Anwendung. Außer natürlich, wir sehen eine Funktion vor, die den aktuellen Stand speichert und beim nächsten Start wiederherstellt.
Zu Beispielzwecken haben wir zwei ToolBar-Elemente zu einem ToolBarTray hinzugefügt. Diese haben wir wie folgt programmiert (Auszüge aus dem Code, den Sie im Modul MainWindow.xaml der Beispielanwendung finden):
<DockPanel> <ToolBarTray x:Name="tbt" DockPanel.Dock="Top"> <ToolBar> <Button Command="Cut"> <StackPanel Orientation="Horizontal"> <Image Source="Icons/cut.png"></Image> <TextBlock Margin="3,0,0,0">Ausschneiden</TextBlock> </StackPanel> </Button> ... </ToolBar> <ToolBar> <Button> <Image Source="Icons/add.png"></Image> </Button> ... </ToolBar> </ToolBarTray> </DockPanel>
Die Symbolleiste sieht nun wie in Bild 1 aus.
Bild 1: Beispielsymbolleisten
Der Benutzer hat nun die Möglichkeit, die Anordnung der Symbolleiste zu ändern. Zum Beispiel kann er die Reihenfolge der beiden Symbolleisten vertauschen (siehe Bild 2).
Bild 2: Vertauschte Beispielsymbolleisten
Oder er verschiebt eine der beiden Symbolleisten in die zweite Zeile (siehe Bild 3).
Bild 3: Beispielsymbolleisten in zwei Zeilen
Erste Idee: XAML-Definition des ToolBarTray-Elements speichern
Die erste Idee war, dass Änderungen der Position sich auch im Zustand der XAML-Definition der ToolBar-Elemente wiederspiegeln. Für diesen Fall wollten wir einfach die XAML-Definition des ToolBarTray-Elements speichern und diese beim nächsten Öffnen wiederherstellen. Die folgende Methode sollte durch ein Ereignis ausgelöst werden, das wir für das Element Window definieren:
<Window x:Class="MainWindow" ... Title="MainWindow" Height="450" Width="800" Closing="Window_Closing">
Die dadurch ausgelöste Methode sieht wie folgt aus: Sie definiert ein FileStream-Objekt, das eine neue Datei namens ToolBarTray.txt erstellt und dann das ToolBarTray namens tbt mit der Variablen objToolBarTray referenziert. Danach nutzen wir die Save-Methode der XamlWriter-Klasse. Diese stellen wir über den folgenden Namespace bereit:
Imports System.Windows.Markup
Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins DATENBANKENTWICKLER:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 200 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein: