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);
            }
        }

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Laravel 出现 No application encryption key has been specified

    Laravel 出现 No application encryption key has been specified

    2021年10月29日
  • c# openfiledialog如何使用_其在古文中的用法

    c# openfiledialog如何使用_其在古文中的用法1.OpenFileDialogprivatevoidbtnOpen_Click(objectsender,EventArgse){OpenFileDialogofd=newOpenFileDialog();ofd.InitialDirectory=@"C:\Users\LWP1398\Desktop…

  • Java实现MD5加密的方式

    Java实现MD5加密的方式  MD5加密是一种常见的加密方式,我们经常用在保存用户密码和关键信息上。那么它到底有什么,又什么好处呢,会被这么广泛的运用在应用开发中。  1、什么是MD5  MD5加密全程是Message-DigestAlgoorithm5(信息-摘要算法),它对信息进行摘要采集,再通过一定的位运算,最终获取加密后的MD5字符串。  例如我们要加密一篇文章,那么我们会随机从每段话或者每行中获取…

  • pycharm一键调整代码格式_c语言格式对齐快捷键

    pycharm一键调整代码格式_c语言格式对齐快捷键1、代码自动填充空格2、自动对齐代码3、符合PEP8规范

  • 深入理解MySQL索引之B+Tree

    深入理解MySQL索引之B+Tree首先,正确的创建合适的索引,是提升数据库查询性能的基础。索引是什么?索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构。索引的工作机制是怎样的?如上图中,如果现在有一条sql语句select*fromteacherwhereid=101,如果没有索引的条件下,我们要找到这条记录,我们就需要就行全表扫描,匹配id=101的数据。如果有了索引,我们就可以快速…

  • Verycd网站中不能显示下载网址的解决办法[通俗易懂]

    Verycd网站中不能显示下载网址的解决办法[通俗易懂]在verycd.com搜索资源的时候,有时候一些权利资源会出现“该内容尚未提供权利证明,无法提供下载”的版权声明。当你急着找这些资源的话,出现这个问题肯定非常烦人的,那该如何解决呢?方法其实很简单。方法0:安装浏览器Verycd链接显示的插件火狐的插件地址(安装这个插件后,可以直接在verycd上看到下载地址):https://addons.mozilla.org/zh-TW/fire

发表回复

您的电子邮箱地址不会被公开。

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