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)
上一篇 2022年7月20日 下午1:36
下一篇 2022年7月20日 下午1:36


相关推荐

  • 密宗经典是佛说的吗_华为微信语音加密怎么试听

    密宗经典是佛说的吗_华为微信语音加密怎么试听什么?佛经都能用来加密了?自上次的社会主义核心价值观加密之后,我已经见怪不怪了。题目:夜哆悉諳多苦奢陀奢諦冥神哆盧穆皤三侄三即諸諳即冥迦冥隸數顛耶迦奢若吉怯陀諳怖奢智侄諸若奢數菩奢集遠俱老竟寫明奢若梵等盧皤豆蒙密離怯婆皤礙他哆提哆多缽以南哆心曰姪罰蒙呐神。舍切真怯勝呐得俱沙罰娑是怯遠得呐數罰輸哆遠薩得槃漫夢盧皤亦醯呐娑皤瑟輸諳尼摩罰薩冥大倒參夢侄阿心罰等奢大度地冥殿皤沙蘇輸奢恐豆侄得罰提哆伽諳沙楞缽三死怯摩大蘇者數一遮解析:这题是攻防世界中的一道题目,这一段文字是佛经,按..

    2025年8月14日
    7
  • 构建agent智能体必备工具:5款热门框架推荐

    构建agent智能体必备工具:5款热门框架推荐

    2026年3月16日
    2
  • leetcode-172. 阶乘后的零[通俗易懂]

    leetcode-172. 阶乘后的零[通俗易懂]给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。class Solution {public: int trailingZeroes(int n) { int ans = 0; for(int i = 5;i <= n;i += 5){

    2022年8月9日
    6
  • 文心4.5开源模型部署实践

    文心4.5开源模型部署实践

    2026年3月12日
    1
  • Stack overflow at line:0 问题解决「建议收藏」

    Stack overflow at line:0 问题解决「建议收藏」首先声明这个问题的解决时针对于,做开发的人来说。如果非开发用户,在网上查找其他的解决方法。今天弄的一个池上陈酒网站,,打开网页时提示Stackoverflowatline:0。截图如下:             找了好长时间没发现问题,后来在网上搜了一下,做了一下参考,然后终于解决问题了.如果你的网页中有如下代码:分析:

    2022年7月15日
    16
  • k8s教程—-零基础快速入门

    k8s教程—-零基础快速入门K8S 入门教学 帮助小白快速理解 应对面试

    2026年3月17日
    2

发表回复

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

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