WPF 第三方控件学习使用——可停靠布局控件(AvalonDock)

WPF 第三方控件学习使用——可停靠布局控件(AvalonDock)需求近期在做公司上位机产品规划与实验,参考了Blender软件的布局风格,希望能用WPF也做一个类似布局的上位机。于是开始寻找资源,很快就发现了AvalonDock。AvalonDock简介AvalonDock是Xceed公司Wpf.Toolkit中的一款收费产品,其中还包括很多其他控件的收集整理,感兴趣的自行研究。但是万能的Nuget里面有许多免费的版本,并且GitHub…

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

需求

近期在做公司上位机产品规划与实验,参考了Blender软件的布局风格,希望能用WPF也做一个类似布局的上位机。于是开始寻找资源,很快就发现了AvalonDock。

AvalonDock简介

AvalonDock是Xceed公司 Wpf.Toolkit 中的一款收费产品,其中还包括很多其他控件的收集整理,感兴趣的自行研究。

WPF 第三方控件学习使用——可停靠布局控件(AvalonDock)

但是万能的Nuget里面有许多免费的版本,并且GitHub开源。下面就给列举一个自己使用的Dirkster.AvalonDock。

 

使用

1.创建我们自己的WPF项目

WPF 第三方控件学习使用——可停靠布局控件(AvalonDock)

2.使用NuGet引入Dirkster.AvalonDock资源库

步骤:右键项目(Melphi)–>管理NuGet程序包–>浏览–>输入”Dirkster.AvalonDock”–>选择”Dirkster.AvalonDock”点击安装即可

WPF 第三方控件学习使用——可停靠布局控件(AvalonDock)

3.使用

这里只是为了演示效果,我就直接把代码贴出来了,不做解释。控件如何使用,请查看其源码:https://github.com/Dirkster99/AvalonDock或者其他博主。

<Window x:Class="Melphi.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Melphi"
        xmlns:avalon="http://schemas.xceed.com/wpf/xaml/avalondock"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <Menu>
            <MenuItem Header="File">
                <MenuItem Header="New"/>
                <MenuItem Header="Open"/>
            </MenuItem>
            <MenuItem Header="Edit">
                <MenuItem Header="Undo"/>
                <MenuItem Header="Cut"/>
                <MenuItem Header="Copy"/>
            </MenuItem>
            <MenuItem Header="View">
                <MenuItem Header="Explorer"/>
                <MenuItem Header="Open"/>
            </MenuItem>
            <MenuItem Header="Tool">
                <MenuItem Header="Extentions"/>
                <MenuItem Header="Options"/>
            </MenuItem>
            <MenuItem Header="Help">
                <MenuItem Header="Welcome"/>
                <MenuItem Header="Support"/>
                <MenuItem Header="About"/>
            </MenuItem>
        </Menu>

        <avalon:DockingManager Grid.Row="1">
            <avalon:DockingManager.Theme>
                <avalon:GenericTheme></avalon:GenericTheme>
            </avalon:DockingManager.Theme>
            <avalon:LayoutRoot>
                <avalon:LayoutPanel Orientation="Horizontal">
                    <avalon:LayoutAnchorablePaneGroup DockWidth="150" FloatingWidth="240">
                        <avalon:LayoutAnchorablePane x:Name="panelLeft">
                            <avalon:LayoutAnchorable Title="Tool"></avalon:LayoutAnchorable>
                            <avalon:LayoutAnchorable Title="Team"></avalon:LayoutAnchorable>
                        </avalon:LayoutAnchorablePane>
                    </avalon:LayoutAnchorablePaneGroup>
                    <avalon:LayoutPanel Orientation="Vertical">
                        <avalon:LayoutDocumentPaneGroup>
                            <avalon:LayoutDocumentPane x:Name="panelTop">
                                <avalon:LayoutDocument Title="MainWindow.xaml"></avalon:LayoutDocument>
                                <avalon:LayoutDocument Title="MainWindow.xaml.cs"></avalon:LayoutDocument>
                            </avalon:LayoutDocumentPane>
                        </avalon:LayoutDocumentPaneGroup>
                        <avalon:LayoutAnchorablePaneGroup DockMinHeight="30" DockHeight="100" FloatingHeight="180">
                            <avalon:LayoutAnchorablePane x:Name="panelBottom">
                                <avalon:LayoutAnchorable Title="Output"></avalon:LayoutAnchorable>
                                <avalon:LayoutAnchorable Title="Exception"></avalon:LayoutAnchorable>
                                <avalon:LayoutAnchorable Title="Error"></avalon:LayoutAnchorable>
                            </avalon:LayoutAnchorablePane>
                        </avalon:LayoutAnchorablePaneGroup>
                    </avalon:LayoutPanel>
                    <avalon:LayoutAnchorablePaneGroup DockMinWidth="50" DockWidth="150" FloatingWidth="270">
                        <avalon:LayoutAnchorablePane x:Name="panelRight" DockWidth="240" FloatingWidth="240">
                            <avalon:LayoutAnchorable Title="Solution"></avalon:LayoutAnchorable>
                            <avalon:LayoutAnchorable Title="Property"></avalon:LayoutAnchorable>
                        </avalon:LayoutAnchorablePane>
                    </avalon:LayoutAnchorablePaneGroup>
                </avalon:LayoutPanel>
            </avalon:LayoutRoot>
        </avalon:DockingManager>

        <Border Grid.Row="2" Background="AliceBlue" Height="20">

        </Border>
    </Grid>
</Window>

 

 

4.效果

WPF 第三方控件学习使用——可停靠布局控件(AvalonDock)

WPF 第三方控件学习使用——可停靠布局控件(AvalonDock)

 

总结

学会查找资料,那将是你尽快抵达下一站的不二捷径。

 

Over

每次记录一小步…点点滴滴人生路…

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

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

(0)
上一篇 2022年7月20日 下午1:00
下一篇 2022年7月20日 下午1:00


相关推荐

  • WebServices简介

    WebServices简介先给出一个概念 SOA 即 ServiceOrien 中文一般理解为面向服务的架构 既然说是一种架构的话 所以一般认为 SOA 是包含了运行环境 编程模型 架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境 涵盖服务的整个生命周期 而在 SOA 的架构风格中 服务是最核心的抽象手段 SOA 中的服务是构建在一些列基于开放标准的基础

    2026年3月26日
    2
  • java哨兵模式_哨兵模式详解

    java哨兵模式_哨兵模式详解一 架构图二 服务器列表三 搭建主从模式 主要配置项主服务器 上图的 Node1 配置文件 redis config 主要配置项 配置端口 port6379 以守护进程模式启动 daemonizeyes pid 的存放文件 pidfile var run redis 6379 pid 日志文件名 logfile redis 6379 log 存放备份文件以及日志等文件的目录 dir opt r

    2026年3月19日
    2
  • Java安全之XStream 漏洞分析

    Java安全之XStream漏洞分析0x00前言好久没写漏洞分析文章了,最近感觉在审代码的时候,XStream组件出现的频率比较高,借此来学习一波XStream的漏洞分析。0x01XSt

    2021年12月13日
    57
  • 自旋锁和互斥锁的区别

    自旋锁和互斥锁的区别自旋锁和互斥锁的区别 POSIXthreads 简称 Pthreads 是在多核平台上进行并行编程的一套 API 线程同步是并行编程中非常重要的通讯手段 其中最典型的应用就是用 Pthreads 提供的锁机制 lock 来对多个线程之间的共享临界区 CriticalSect 进行保护 另一种常用的同步机制是 barrier Pthreads 提供了多种锁机制 Mutex 互斥量 pthread mutex t Spinlock 自旋锁 pthread spin t Conditio

    2026年3月19日
    2
  • 你愿意成为一名全栈设计师吗?

    你愿意成为一名全栈设计师吗?

    2022年3月5日
    41
  • 连卡佛选用 Orange Business Services 的云平台,以提升其数字化购物体验

    连卡佛选用 Orange Business Services 的云平台,以提升其数字化购物体验

    2022年4月2日
    44

发表回复

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

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