0%

从零开始学习AvalonDock

从零开始学习AvalonDock(1) - skystalker - 博客园

Excerpt

由于个人需要,时不时得开发上位机程序,之前用过WIN API和C# WIN FORM,但都是开发一两个程序就不用了。这次又需要弄一个上位机,为了不花大量精力来弄界面,经过两天业余时间的搜索资料,决定选用WPF。这个程序需要有类似VS2008和KEIL等软件的DOCKING PANEL功能,选用了开源


由于个人需要,时不时得开发上位机程序,之前用过WIN API和C# WIN FORM,但都是开发一两个程序就不用了。这次又需要弄一个上位机,为了不花大量精力来弄界面,经过两天业余时间的搜索资料,决定选用WPF。

这个程序需要有类似VS2008和KEIL等软件的DOCKING PANEL功能,选用了开源的控件AVALONDOCK。

本人非专职上位机开发人员,只求用最快的速度达到需求,只把WPF的概念大约了解了一下,不打算单独研究XAML的语法。先建立一个DEMO感受一下,获得一些成就感是明智的。

新建一个空的工程,在references中添加avalondock的DLL,然后把XMAL文件按如下修改

View Code

然后增加

View Code

也可以不要上面那部分代码,后台代码修改成如下,职业习惯,我更喜欢在后台生成窗口。

复制代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<span>using</span><span> System;
</span><span>using</span><span> System.Collections.Generic;
</span><span>using</span><span> System.Linq;
</span><span>using</span><span> System.Text;
</span><span>using</span><span> System.Windows;
</span><span>using</span><span> System.Windows.Controls;
</span><span>using</span><span> System.Windows.Data;
</span><span>using</span><span> System.Windows.Documents;
</span><span>using</span><span> System.Windows.Input;
</span><span>using</span><span> System.Windows.Media;
</span><span>using</span><span> System.Windows.Media.Imaging;
</span><span>using</span><span> System.Windows.Navigation;
</span><span>using</span><span> System.Windows.Shapes;
</span><span>using</span><span> AvalonDock;

</span><span>namespace</span><span> WpfApplication4
{
</span><span>///</span> <span>&lt;summary&gt;</span>
<span>///</span><span> Interaction logic for MainWindow.xaml
</span><span>///</span> <span>&lt;/summary&gt;</span>
<span>public</span> <span>partial</span> <span>class</span><span> MainWindow : Window
{
</span><span>public</span><span> MainWindow()
{
InitializeComponent();

</span><span>var</span> resPanel = <span>new</span> ResizingPanel() { Orientation =<span> Orientation.Horizontal };
</span><span>var</span> dockPane = <span>new</span><span> DockablePane() { };
</span><span>var</span> documentPane = <span>new</span><span> DocumentPane() { };

dockPane.Items.Add(</span><span>new</span><span> DockableContent()
{
Name </span>= <span>"</span><span>classesContent</span><span>"</span><span>,
Title </span>= <span>"</span><span>Classes</span><span>"</span><span>
});

documentPane.Items.Add(</span><span>new</span><span> DocumentContent()
{
Title </span>= <span>"</span><span>My Document!</span><span>"</span><span>
});

resPanel.Children.Add(dockPane);
resPanel.Children.Add(documentPane);
dockManager.Content </span>=<span> resPanel;
}
}
}</span>

复制代码

运行一下就会出来一个具有浮动和自动停靠等功能的DEMO程序。

以上程序来源:http://avalondock.codeplex.com/wikipage?title=GettingStarted&referringTitle=Documentation