wpf-AvalonDock基础-安装和更换主题

wpf-AvalonDock基础-安装和更换主题最近对wpf的多窗口排列问题深感头疼,算尺寸、位置太麻烦了(也可能是我菜鸡的缘故),最后决定用AvalonDock,排列很漂亮。本篇主要是安装和更换主题,后续会更一篇项目中常用的技巧。再吐槽一下,AvalonDock的中文资料同质化太严重!!!很多需要自己测试了才能用好(我的环境是win10+vs2019)喜欢的话为我的辛苦点个赞吧!嘤嘤嘤安装Avalondock是一个支持mvvm的框架,可以快速开发出类似visualstudio的多窗口app。去https://archive.codepl

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

最近对wpf的多窗口排列问题深感头疼,算尺寸、位置太麻烦了(也可能是我菜鸡的缘故),最后决定用AvalonDock,排列很漂亮。

本篇主要是安装和更换主题,后续会更一篇项目中常用的技巧。

再吐槽一下,AvalonDock的中文资料同质化太严重!!!很多需要自己测试了才能用好(我的环境是win10+vs2019

喜欢的话为我的辛苦点个赞吧!嘤嘤嘤

安装

Avalondock是一个支持mvvm的框架,可以快速开发出类似visual studio的多窗口app。

去 https://archive.codeplex.com/?p=avalondock 下载archive,找到sourceCode.zip,直接进入Version2.0,然后在vs里生成。dll在obj/debug下。拷贝到自己的项目里,引用上。

生成后会得到一个基础dll:
在这里插入图片描述
和几个关于主题的dll:
在这里插入图片描述

主题

Avalondock提供几种主题,也允许你切换。要更换的话,首先把几个dll放到当前项目的引用里:
在这里插入图片描述
下面对同一段xaml代码,大家可以看一下不同的效果:
注意在Window标签里添加这行:xmlns:avalonDock

<Window x:Class="TestAvalon.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:TestAvalon" xmlns:avalonDock="http://schemas.xceed.com/wpf/xaml/avalondock" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800">
        
    <Grid>
        <avalonDock:DockingManager x:Name="dockingManager">
            <avalonDock:LayoutRoot>
                <avalonDock:LayoutPanel Orientation="Horizontal">
                    <avalonDock:LayoutDocumentPaneGroup>
                        <avalonDock:LayoutDocumentPane>
                            <avalonDock:LayoutDocument Title="Doc1">
                                <TextBox/>
                            </avalonDock:LayoutDocument>
                            <avalonDock:LayoutDocument Title="Doc2">
                                <TextBox/>
                            </avalonDock:LayoutDocument>
                        </avalonDock:LayoutDocumentPane>
                        <avalonDock:LayoutDocumentPane>
                            <avalonDock:LayoutDocument Title="Doc3">
                                <TextBox/>
                            </avalonDock:LayoutDocument>
                        </avalonDock:LayoutDocumentPane>
                    </avalonDock:LayoutDocumentPaneGroup>
                    <avalonDock:LayoutAnchorablePaneGroup DockWidth="150" Orientation="Vertical">
                        <avalonDock:LayoutAnchorablePane>
                            <avalonDock:LayoutAnchorable Title="Tool 1">
                                <TextBox/>
                            </avalonDock:LayoutAnchorable>
                            <avalonDock:LayoutAnchorable Title="Tool 2">
                                <TextBox/>
                            </avalonDock:LayoutAnchorable>
                        </avalonDock:LayoutAnchorablePane>
                        <avalonDock:LayoutAnchorablePane>
                            <avalonDock:LayoutAnchorable Title="Tool 3">
                                <TextBox/>
                            </avalonDock:LayoutAnchorable>
                            <avalonDock:LayoutAnchorable Title="Tool 4">
                                <TextBox/>
                            </avalonDock:LayoutAnchorable>
                        </avalonDock:LayoutAnchorablePane>
                    </avalonDock:LayoutAnchorablePaneGroup>
                </avalonDock:LayoutPanel>
                <avalonDock:LayoutRoot.LeftSide>
                    <avalonDock:LayoutAnchorSide>
                        <avalonDock:LayoutAnchorGroup>
                            <avalonDock:LayoutAnchorable Title="Autohidden Content">
                                <TextBox/>
                            </avalonDock:LayoutAnchorable>
                        </avalonDock:LayoutAnchorGroup>
                    </avalonDock:LayoutAnchorSide>
                </avalonDock:LayoutRoot.LeftSide>
            </avalonDock:LayoutRoot>
        </avalonDock:DockingManager>
    </Grid>
    
</Window>

后台

public MainWindow()
{
	InitializeComponent();
	this.dockingManager.Theme = new AeroTheme();
}

默认风格(不设定Theme)

在这里插入图片描述

AeroTheme

在这里插入图片描述

ExpressionLightTheme

在这里插入图片描述

ExpressionDarkTheme

在这里插入图片描述

MetroTheme

在这里插入图片描述

VS2010风格

在这里插入图片描述

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

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

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


相关推荐

  • 《如何让Linux安全起来》第一篇–设置普通用户登陆、禁止超级用户登陆

    《如何让Linux安全起来》第一篇–设置普通用户登陆、禁止超级用户登陆

    2021年6月4日
    151
  • 【Python数据可视化】超星学习通助手后台数据的可视化处理

    【Python数据可视化】超星学习通助手后台数据的可视化处理Python数据可视化。

    2022年6月21日
    33
  • 谈谈我对服务熔断、服务降级的理解

    谈谈我对服务熔断、服务降级的理解伴随着微服务架构被宣传得如火如荼,一些概念也被推到了我们面前(管你接受不接受),其实大多数概念以前就有,但很少被提的这么频繁(现在好像不提及都不好意思交流了)。想起有人总结的一句话,微服务架构的特点就是:“一解释就懂,一问就不知,一讨论就吵架”。其实对老外的总结能力一直特别崇拜,KevinKelly、MartinFowler、WernerVogels……,都是著名的“

    2022年5月2日
    36
  • ov7740摄像头_雷威视监控摄像头二码是无

    ov7740摄像头_雷威视监控摄像头二码是无近日入手了一块正点原子家的OV7725摄像头模块,秉着小白尽可能学得透彻些的想法,选择了野火家的相同摄像头教学视频。链接如下:【单片机】野火STM32F103教学视频(配套霸道/指南者/MINI)【全】(刘火良老师出品)(无字幕)_哔哩哔哩_bilibili现对PPT和火哥所授内容进行整理:在各类传感器获取信息中,图像包含有最丰富的信息。但是摄像头模块仅用于获取输出图像,像利用摄像头进行人脸识别,图像识别之类功能,主要是依赖于识别算法,这是另外的技术。分类:摄像头按输出信号分类可分为模拟

    2022年9月23日
    0
  • 大数据教程(13.1)Flume使用

    大数据教程(13.1)Flume使用

    2021年6月30日
    68
  • CMOS图像传感器基础知识和参数理解「建议收藏」

    CMOS图像传感器基础知识和参数理解「建议收藏」CMOS图像传感器的工作原理:每一个CMOS像素都包括感光二极管(Photodiode)、浮动式扩散层(Floatingdiffusionlayer)、传输电极门(Transfergate)、起放大作用的MOSFET、起像素选择开关作用的M0SFET.在CMOS的曝光阶段,感光二极管完成光电转换,产生信号电荷,曝光结束后,传输电极门打开,信号电荷被传送到浮动式扩散层,由起放大作用的MOSFET电极门来拾取,电荷信号转换为电压信号。所以这样的CMOS也就完成了光电转换、电荷电压转换、模拟数

    2022年5月17日
    146

发表回复

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

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