写工具的时候,为了界面好看,实现类似于VS那样可以拖拽拉大拉小各个控件的效果,搜了一下,简单的说一下两种实现方法:
1.最简单的下载devexpress控件,LZ用的是15.1的版本,装好了左边工具栏会多一个
DockLayoutManger控件,直接拖到主界面即可。
实现效果如下图:
2.用AvalonDock.dll,这个控件对比第一个就很不友好了,里面各个子控件都要通过代码实现,而不是第一个点击显示界面就能实现,LZ给一个百度上实现的实例代码,感兴趣可以试一下,DLL放在百度云里面了自行下载
实现效果如下图:
实例代码(全部复制黏贴到Grid即可):
<AvalonDock:DockingManager x:Name="dockManager" Grid.Row="2" Margin="0,3,0,0">
<AvalonDock:ResizingPanel>
<AvalonDock:ResizingPanel Orientation="Vertical" AvalonDock:ResizingPanel.ResizeWidth="0.2*">
<AvalonDock:DockablePane AvalonDock:ResizingPanel.ResizeWidth="0.1*">
<AvalonDock:DockableContent x:Name="CameraContent" Title="摄像机" FontFamily="微软雅黑" FloatingWindowSize="250,300">
</AvalonDock:DockableContent>
</AvalonDock:DockablePane>
<AvalonDock:DockablePane>
<AvalonDock:DockableContent x:Name="PTZControlContent" Title="云台控制" FontFamily="微软雅黑">
</AvalonDock:DockableContent>
</AvalonDock:DockablePane>
<AvalonDock:DockablePane AvalonDock:ResizingPanel.ResizeHeight="*">
<AvalonDock:DockableContent x:Name="PlayOperateContent" Title="回放控制" FontFamily="微软雅黑">
</AvalonDock:DockableContent>
</AvalonDock:DockablePane>
</AvalonDock:ResizingPanel>
<AvalonDock:ResizingPanel x:Name="VideoResizingPanel">
<AvalonDock:DocumentPane>
<AvalonDock:DocumentContent x:Name="VideoBroswerContent" Title="视频监控" FontFamily="微软雅黑">
</AvalonDock:DocumentContent>
</AvalonDock:DocumentPane>
</AvalonDock:ResizingPanel>
</AvalonDock:ResizingPanel>
</AvalonDock:DockingManager>
AvalonDock.dll百度云链接: https://pan.baidu.com/s/1bi1pB79Zb_6mCRrTYuxW1w 提取码: qjm5