Avalondock 第一步 創建停靠面板


步驟1 下載庫文件

加載指定的庫,在項目上點擊右鍵,打開管理NuGet程序包

輸入Avalondock

安裝 Xceed.Products.Wpf.Toolkit.AvalonDock和 Xceed.Products.Wpf.Toolkit.AvalonDock.Themes兩個庫一個是控件庫,一個是皮膚庫,缺少任何一個,都會造成程序無法編譯。

步驟2 引入命名空間

在項目中,定義命名空間如下:

xmlns:avalondock="http://schemas.xceed.com/wpf/xaml/avalondock"

步驟3 編寫基礎代碼

  1. 建立DockingManager

DockingManager停靠管理器類,是AvalonDock中的核心控件之一,負責管理浮動窗體、布局存儲、恢復,樣式主題等。在XAML中,是AvaDock元素的根節點

<Grid>

<Grid.RowDefinitions>

<RowDefinition Height="Auto"></RowDefinition>

</Grid.RowDefinitions>

<avalondock:DockingManager Grid.Row="0">

 

</avalondock:DockingManager>

</Grid>

2、指定當前的皮膚

<avalondock:DockingManager>

<avalondock:DockingManager.Theme>

<avalondock:Office2007BlackTheme></avalondock:Office2007BlackTheme>

</avalondock:DockingManager.Theme>

</avalondock:DockingManager>

3、創建LayoutRoot根結點

布局根節點類,DockingManager中的內容控件完全占滿DockingManager中的空間。LayoutRoot包含四個屬性,LeftSide,RightSide,TopSide,BottomSide,分別用於展示DockingManager中左右上下四個位置的內容,但初始狀態為隱藏狀態。另外兩個屬性FloatingWindows,Hidden分別為浮動窗體集合和隱藏窗體集合。當一個窗格浮動時,AvalonDock會將其從其所在組中刪除,然后放置到FloatingWindows集合中。當一個窗格關閉時,會將其放置在Hidden集合中。

<avalondock:DockingManager>

<avalondock:DockingManager.Theme>

<avalondock:Office2007BlackTheme></avalondock:Office2007BlackTheme>

</avalondock:DockingManager.Theme>

<avalondock:LayoutRoot>

</avalondock:LayoutRoot>

</avalondock:DockingManager>

4、構建面板LayoutPanel

布局面板類,LayoutRoot中的內容控件,完全占滿LayoutRoot中的空間,在LayoutPanel中,可以有多個LayoutGroup,可以設定Orientation 屬性,控件布局組的浮動方向。實際的窗格都位於LayoutPanel節點下。

<avalondock:DockingManager>

<avalondock:DockingManager.Theme>

<avalondock:Office2007BlackTheme></avalondock:Office2007BlackTheme>

</avalondock:DockingManager.Theme>

<avalondock:LayoutRoot>

<avalondock:LayoutPanel x:Name="Panel" >

</avalondock:LayoutPanel>

</avalondock:LayoutRoot>

</avalondock:DockingManager>

5、構建可停靠面板LayoutAnchorablePane

可停靠窗格類,浮動窗格是可停靠控件LayoutAnchorable的容器。一個窗格中,可以有多個可停靠控件。浮動窗格中的可停靠控件只能是LayoutAnchorable.窗格大小設定后,不能自動改變。

<avalondock:DockingManager>

<avalondock:DockingManager.Theme>

<avalondock:Office2007BlackTheme></avalondock:Office2007BlackTheme>

</avalondock:DockingManager.Theme>

<avalondock:LayoutRoot>

<avalondock:LayoutPanel x:Name="Panel" >

<avalondock:LayoutAnchorablePane x:Name="Pane1">

</avalondock:LayoutAnchorablePane>

<avalondock:LayoutAnchorablePane x:Name="Pane2">

</avalondock:LayoutAnchorablePane>

<avalondock:LayoutAnchorablePane x:Name="Pane3">

</avalondock:LayoutAnchorablePane>

</avalondock:LayoutPanel>

</avalondock:LayoutRoot>

</avalondock:DockingManager>

6、構建停靠內容控件LayoutAnchorable

可停靠內容類,一般放置在LayoutAnchorablePane中,其內容可以是用戶自定義控件類型,比如,在UserControl中設置好WPF基礎控件布局,然后將整個UserControl放置在LayoutAnchorable中,這樣,整個UserControl內容就可以隨着可停靠控件一起浮動或者停靠。

<avalondock:DockingManager>

<avalondock:DockingManager.Theme>

<avalondock:Office2007BlackTheme></avalondock:Office2007BlackTheme>

</avalondock:DockingManager.Theme>

<avalondock:LayoutRoot>

<avalondock:LayoutPanel x:Name="Panel" >

<avalondock:LayoutAnchorablePane x:Name="Pane1">

<avalondock:LayoutAnchorable x:Name="Solution1" Title="解決方案1" ContentId="Solution"/>

</avalondock:LayoutAnchorablePane>

<avalondock:LayoutAnchorablePane x:Name="Pane2">

<avalondock:LayoutAnchorable x:Name="Solution2" Title="解決方案2" ContentId="Solution"/>

<avalondock:LayoutAnchorable x:Name="Solution3" Title="解決方案3" ContentId="Solution"/>

</avalondock:LayoutAnchorablePane>

</avalondock:LayoutPanel>

</avalondock:LayoutRoot>

</avalondock:DockingManager>

以上定義了兩個停靠面板且第一個停靠面板,有一個停靠控件,第二個停靠面板有三個停靠控件

其顯示的效果如下圖:

由知其基本層次關系如下:

DockingManager 包含LayoutRoot

LayoutRoot下面包含LayoutPanel

LayoutPanel下面包含LayoutAnchorablePane

LayoutAnchorablePane下面包含LayoutAnchorable


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM