Benutzer mit den meisten Antworten
Avalondock Speichern und Laden

Frage
-
Hallo
Ich habe mit NuGet das Dirkster.AvalonDock Installiert. Nun möchte ich die Docking die der Benutzer macht Speichern und wieder beim nächsten Programmstart wieder Laden.
Ich habe ein MainWindow, Window1 als UserControl und nochmal ein Control mit den Namen Links
Es wir ein XML code in die Datei geschrieben, nur wenn es dann geladen wird zeigt er es nicht an. Die Fenster werden nicht geladen.
Was habe ich falsch? oder besser gefragt wie muss ich es machen?
Hier der Aufbau von
MainWindow
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp5" xmlns:avalondock="https://github.com/Dirkster99/AvalonDock" x:Class="MainWindow" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Grid> <avalondock:DockingManager> <avalondock:DockingManager.Theme> <avalondock:AeroTheme/> </avalondock:DockingManager.Theme> <avalondock:LayoutRoot> <avalondock:LayoutPanel x:Name="MyLayoutPanel"> <avalondock:LayoutDocumentPane x:Name="LayoutDocumentPane"> <avalondock:LayoutDocument x:Name="MyLayoutDocument"/> </avalondock:LayoutDocumentPane> </avalondock:LayoutPanel> </avalondock:LayoutRoot> </avalondock:DockingManager> </Grid> </Window>
MainWindow.vb
Class MainWindow Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded Dim mld = New AvalonDock.Layout.LayoutDocument() Dim MyControl As Window1 = New Window1 mld.Title = "Übersicht" mld.Content = MyControl mld.IsMaximized = True mld.CanClose = False mld.IsSelected = True LayoutDocumentPane.Children.Add(mld) End Sub End Class
Window1
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp5" xmlns:avalondock="https://github.com/Dirkster99/AvalonDock" x:Class="Window1" mc:Ignorable="d" > <Grid> <avalondock:DockingManager x:Name="DockingManager2"> <avalondock:DockingManager.Theme> <avalondock:AeroTheme/> </avalondock:DockingManager.Theme> <avalondock:LayoutRoot x:Name="myLayoutRoot"> <avalondock:LayoutPanel x:Name="myLayoutPanel"> <avalondock:LayoutAnchorablePane x:Name="myLayoutAnchorablePane" DockMinWidth="200" ResizableAbsoluteDockWidth="200" DockWidth="200"> </avalondock:LayoutAnchorablePane> <avalondock:LayoutDocumentPaneGroup x:Name="myLayoutDocumentPaneGroup"> <avalondock:LayoutDocumentPane x:Name="myLayoutDocumentPane"> <avalondock:LayoutDocument x:Name="Label2" Title="Und geht das?"> <Grid> <Button x:Name="Button1" Content="Klick mich" Height="25" Width="120" HorizontalAlignment="Left"></Button> <Button x:Name="Button2" Content="Speichern" Width="100" Height="20" HorizontalAlignment="Right"></Button> </Grid> </avalondock:LayoutDocument> </avalondock:LayoutDocumentPane> </avalondock:LayoutDocumentPaneGroup> <avalondock:LayoutAnchorablePaneGroup x:Name="myLayoutAnchorablePaneGroup"> <avalondock:LayoutAnchorablePane x:Name="myLayoutAnchorablePane2" DockMinWidth="200"> </avalondock:LayoutAnchorablePane> </avalondock:LayoutAnchorablePaneGroup> </avalondock:LayoutPanel> <avalondock:LayoutRoot.BottomSide> <avalondock:LayoutAnchorSide x:Name="myLayoutAnchorSide"> <avalondock:LayoutAnchorGroup x:Name="myLayoutAnchorGroup"> <avalondock:LayoutAnchorable x:Name="OutputAnchorable" Title="test" AutoHideHeight="200"> </avalondock:LayoutAnchorable> </avalondock:LayoutAnchorGroup> </avalondock:LayoutAnchorSide> </avalondock:LayoutRoot.BottomSide> </avalondock:LayoutRoot> </avalondock:DockingManager> </Grid> </UserControl>
Window1.vb
Imports AvalonDock.Layout.Serialization Public Class Window1 Dim mld3 = New AvalonDock.Layout.LayoutAnchorable Private Sub Window1_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded Dim mld = New AvalonDock.Layout.LayoutAnchorable Dim MyControl As Links = New Links mld.Title = "Übersicht1" mld.CanHide = False mld.CanClose = False mld.Content = MyControl myLayoutAnchorablePane.Children.Add(mld) Dim mld2 = New AvalonDock.Layout.LayoutAnchorable Dim MyControl2 As Links = New Links mld2.Title = "Übersicht2" mld2.CanHide = False mld2.CanClose = False mld2.Content = MyControl2 myLayoutAnchorablePane2.Children.Add(mld2) Dim MyControl3 As Links = New Links mld3.Title = "Übersicht3" mld3.CanHide = False mld3.CanClose = False mld3.Content = MyControl3 mld3.ToggleAutoHide() myLayoutAnchorGroup.Children.Add(mld3) laden() End Sub Private Sub DockingManager_OnLoaded(ByVal sender As Object, ByVal e As RoutedEventArgs) OutputAnchorable.Close() Dim h = CType(mld3.Parent, AvalonDock.Layout.LayoutAnchorablePane) h.DockHeight = New GridLength(150) End Sub Private Sub Window1_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded speichern() End Sub Private Sub laden() Using reader = New IO.StreamReader("AvalonDockSavedFile.txt") Dim layoutSerializer = New XmlLayoutSerializer(DockingManager2) layoutSerializer.Deserialize(reader) End Using End Sub Private Sub speichern() Using writer = New IO.StreamWriter("AvalonDockSavedFile.txt") Dim layoutSerializer = New XmlLayoutSerializer(DockingManager2) layoutSerializer.Serialize(writer) End Using End Sub Private Sub Button1_Click(sender As Object, e As RoutedEventArgs) Handles Button1.Click laden() End Sub Private Sub Button2_Click(sender As Object, e As RoutedEventArgs) Handles Button2.Click speichern() End Sub End Class
AvalonDockSavedFile.txt
<?xml version="1.0" encoding="utf-8"?> <LayoutRoot> <RootPanel Orientation="Vertical"> <LayoutAnchorablePaneGroup Orientation="Horizontal" DockHeight="105" FloatingWidth="136" FloatingHeight="39" FloatingLeft="418" FloatingTop="107"> <LayoutAnchorablePane DockHeight="105" FloatingWidth="136" FloatingHeight="39" FloatingLeft="418" FloatingTop="107"> <LayoutAnchorable CanHide="False" AutoHideMinWidth="100" AutoHideMinHeight="100" Title="Übersicht3" IsSelected="True" FloatingLeft="418" FloatingTop="107" FloatingWidth="136" FloatingHeight="39" CanClose="False" LastActivationTimeStamp="03/26/2020 14:30:38" /> </LayoutAnchorablePane> </LayoutAnchorablePaneGroup> <LayoutPanel Orientation="Horizontal" DockHeight="0.745287824758024*"> <LayoutAnchorablePane DockWidth="200" DockMinWidth="200"> <LayoutAnchorable CanHide="False" AutoHideMinWidth="100" AutoHideMinHeight="100" Title="Übersicht1" IsSelected="True" CanClose="False" /> </LayoutAnchorablePane> <LayoutDocumentPaneGroup Orientation="Horizontal"> <LayoutDocumentPane> <LayoutDocument Title="Und geht das?" IsSelected="True" IsLastFocusedDocument="True" LastActivationTimeStamp="03/26/2020 14:30:57" /> </LayoutDocumentPane> </LayoutDocumentPaneGroup> <LayoutAnchorablePaneGroup Orientation="Horizontal" DockWidth="200"> <LayoutAnchorablePane DockWidth="200" DockMinWidth="200"> <LayoutAnchorable CanHide="False" AutoHideMinWidth="100" AutoHideMinHeight="100" Title="Übersicht2" IsSelected="True" CanClose="False" /> </LayoutAnchorablePane> </LayoutAnchorablePaneGroup> </LayoutPanel> </RootPanel> <TopSide /> <RightSide /> <LeftSide /> <BottomSide> <LayoutAnchorGroup> <LayoutAnchorable AutoHideHeight="200" AutoHideMinWidth="100" AutoHideMinHeight="100" Title="test" CanClose="False" /> </LayoutAnchorGroup> </BottomSide> <FloatingWindows /> <Hidden /> </LayoutRoot>
Antworten
-
Hallo Mattes80,
<avalondock:LayoutDocument x:Name="MyLayoutDocument"/>
<avalondock:LayoutDocument x:Name="Label2" Title="Und geht das?">
<avalondock:LayoutAnchorable x:Name="OutputAnchorable" Title="test" AutoHideHeight="200">
AvalonDock DockingManager does not load layout
Gruß,
Dimitar
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Bearbeitet Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 27. März 2020 22:06
- Als Antwort markiert Mattes80 Samstag, 28. März 2020 07:34
Alle Antworten
-
Hallo Mattes80,
<avalondock:LayoutDocument x:Name="MyLayoutDocument"/>
<avalondock:LayoutDocument x:Name="Label2" Title="Und geht das?">
<avalondock:LayoutAnchorable x:Name="OutputAnchorable" Title="test" AutoHideHeight="200">
AvalonDock DockingManager does not load layout
Gruß,
Dimitar
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Bearbeitet Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 27. März 2020 22:06
- Als Antwort markiert Mattes80 Samstag, 28. März 2020 07:34