WPFAvalonDock基本用法

WPFAvalonDock基本用法本文简单介绍AvalonDock2.0基本用法,下载AvalonDock2.0dll及主题http://avalondock.codeplex.com/AvalonDock基本类介绍DockingManager:停靠管理类,xaml中AvalonDock的根节点LayoutRoot:布局根节点,有四个属性LeftSide,RightSide,TopSide,ButtomSide展示四

大家好,又见面了,我是你们的朋友全栈君。

本文简单介绍AvalonDock2.0基本用法,下载AvalonDock 2.0dll及主题http://avalondock.codeplex.com/

AvalonDock基本类介绍

DockingManager:停靠管理类,xaml中AvalonDock的根节点

LayoutRoot:布局根节点,有四个属性LeftSide,RightSide,TopSide,ButtomSide展示四个位置的内容

LayoutPanel:布局面板类,可有多个LayoutGroup,实际的窗格都位于LayoutPanel节点下

LayoutAnchorablePaneGroup:可停靠窗格组类

LayoutDocumentPaneGroup:文档窗格组类

LayoutAnchorablePane:可停靠窗格类

LayoutDocumentPane:文档窗格类

LayoutAnchorable:可停靠内容类

LayoutDocument:文档内容类

xaml布局代码

WPFAvalonDock基本用法

<Window x:Class="AvalonDockTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:avalondock="http://schemas.xceed.com/wpf/xaml/avalondock"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <Menu Margin="0" HorizontalAlignment="Left" Name="menu1" VerticalAlignment="Top">
            <MenuItem Header="恢复布局" Click="MenuItem_Click"/>
            <MenuItem Header="断点窗口" Click="MenuItem_Click_1"/>
        </Menu>
        <avalondock:DockingManager x:Name="dockingmanger" Grid.Row="1">
            <avalondock:DockingManager.Theme>
                <avalondock:VS2010Theme/>
            </avalondock:DockingManager.Theme>
            
            <avalondock:LayoutRoot>
                <avalondock:LayoutRoot.LeftSide>
                    <avalondock:LayoutAnchorSide>
                        <avalondock:LayoutAnchorGroup>
                            <avalondock:LayoutAnchorable Title="资源管理器" AutoHideHeight="50" ContentId="l1">
                                <TextBox Width="80" SelectionChanged="TextBox_SelectionChanged"/>
                            </avalondock:LayoutAnchorable>
                            <avalondock:LayoutAnchorable Title="数据库" AutoHideHeight="50" ContentId="l2">
                                <TextBox Width="80" SelectionChanged="TextBox_SelectionChanged"/>
                            </avalondock:LayoutAnchorable>
                        </avalondock:LayoutAnchorGroup>
                    </avalondock:LayoutAnchorSide>   
                </avalondock:LayoutRoot.LeftSide>
                
                <avalondock:LayoutRoot.BottomSide>
                    <avalondock:LayoutAnchorSide>
                        <avalondock:LayoutAnchorGroup x:Name="buttomgroup">
                            <avalondock:LayoutAnchorable Title="输出" ContentId="t1">
                                <TextBox TextWrapping="Wrap" AcceptsReturn="True"></TextBox>
                            </avalondock:LayoutAnchorable>
                            <avalondock:LayoutAnchorable Title="错误" ContentId="t2">
                                <TextBox TextWrapping="Wrap" AcceptsReturn="True"></TextBox>
                            </avalondock:LayoutAnchorable>
                        </avalondock:LayoutAnchorGroup>
                    </avalondock:LayoutAnchorSide>
                </avalondock:LayoutRoot.BottomSide>
                
                <avalondock:LayoutPanel>
                    <avalondock:LayoutDocumentPane>
                        <avalondock:LayoutDocument Title="MainWindow.xaml" ContentId="d1">
                            <TextBox AcceptsReturn="True" TextWrapping="Wrap"></TextBox>
                        </avalondock:LayoutDocument>
                        <avalondock:LayoutDocument Title="MainWindow.xaml.cs" ContentId="d2">
                            <TextBox AcceptsReturn="True" TextWrapping="Wrap"></TextBox>
                        </avalondock:LayoutDocument>
                    </avalondock:LayoutDocumentPane>
                </avalondock:LayoutPanel>
            </avalondock:LayoutRoot>
        </avalondock:DockingManager>
        
    </Grid>
</Window>

动态改变

        private void MenuItem_Click_1(object sender, RoutedEventArgs e)
        {
            try
            {
                LayoutAnchorable la = new LayoutAnchorable();
                la.Title = "断点";
                la.Content = new TextBox();
                buttomgroup.Children.Add(la);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

保存布局

            var serializer = new XmlLayoutSerializer(dockingmanger);
            using(var stream = new StreamWriter("layout.xml"))
            {
                serializer.Serialize(stream);
            }

恢复布局

        private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            var serializer = new XmlLayoutSerializer(dockingmanger);
            using(var stream = new StreamReader("layout.xml"))
            {
                serializer.Deserialize(stream);
            }
        }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162118.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IDC机房管理系统软件

    IDC机房管理系统软件

    2021年7月30日
    107
  • django自定义用户认证_用户自定义的类

    django自定义用户认证_用户自定义的类前言如果我们不用使用drf那套认证规则,我们想自定义认证类,那么我们首先要知道,drf本身是如何定义认证规则的,也就是要查看它的源码是如何写的源码分析源码的入口在APIView.py文件下的di

    2022年7月30日
    4
  • java图片转二进制流_java将文件转化成二进制流

    java图片转二进制流_java将文件转化成二进制流二进制流的主要编码格式是base64码。可以在网上找一些在线转base64编码的网站进行尝试转换。例如:http://imgbase64.duoshitong.com/然后通过前端展现和下载。一、前端查看、下载功能实现前端显示二进制流图片(src中放置base64码及二进制流)<imgsrc=”http://dl.ppt123.net/pptbj/201603/2016030410235232.jpg”alt=””><imgsrc=”data:image/png;base

    2022年10月12日
    1
  • hexo博客主题推荐_wordpress社交主题

    hexo博客主题推荐_wordpress社交主题crystalBlog上篇hexo博客搭建及主题优化(一)主题优化二21.网站log设置主题目录下的_config.yml配置文件中:#配置网站favicon和网站LOGO##本地#favicon:/favicon.png#logo:/medias/logo.png#此处我用的CDN,也可以使用本地文件favicon:https://cdn.jsdelivr.net/gh/guixinchn/image/blog/favicon.pnglogo:https://cdn

    2022年8月30日
    0
  • 页面返回顶部代码_网页回到顶部代码

    页面返回顶部代码_网页回到顶部代码网站添加返回顶部有好几种,下面我简单介绍下:1使用文字添加方法最简单的是:最简单的“返回顶部”代码就是“返回顶部”(不包括引号),(0,0)代表座标,第一位是水平,第二位是垂直,(0,0)就表示网页左上角,文字部分(返回顶部)可以自由替换成自己需要的内容,比如也可以用“TOP”都可以。

    2022年10月6日
    0
  • Tomcat 的类加载机制

    Tomcat 的类加载机制Tomcat实际上只有WebAppClassLoader加载器中打破了双亲委派,其他类加载器还是遵循双亲委派的。这样做最主要原因是保证同个Web容器中的不同Web应用程序所使用的类库相互独立,避免相互影响

    2022年5月23日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号