基于WPF&Prism&AvalonEdit的XAML轻量编辑器
程序员文章站
2023-09-29 09:07:39
1. 写在前面 一直从事WPF的相关开发工作,有时为了尝试或演示某些仅仅基于XAML的效果时,但又不想大动干戈打开VS去创建项目,所以一个轻便简单,集编辑与预览于一身的XAML编辑器就显得格外重要。 Kaxaml,集编辑与预览,过去一直在使用,但苦于不知何原因,最近频频崩溃,虽然开源有代码可循,但也 ......
1. 写在前面
一直从事wpf的相关开发工作,有时为了尝试或演示某些仅仅基于xaml的效果时,但又不想大动干戈打开vs去创建项目,所以一个轻便简单,集编辑与预览于一身的xaml编辑器就显得格外重要。
- kaxaml,集编辑与预览,过去一直在使用,但苦于不知何原因,最近频频崩溃,虽然开源有代码可循,但也懒的下载调试;
- xaml studio,只能在win10上使用,且只适用于uwp,*放弃。
那么,干脆自己动手,丰衣足食!这样,xaml viewer诞生了,而且完全开源!
2. 界面预览
非专业美工设计,加上vs的文档编辑结构正合我意,而且个人相对比较中意vs的设计风格,所以就不折磨自己了。
3. 项目构成
软件主要基于wpf,prism,avalonedit,唯一核心代码如下(其他均为锦上添花):
element = xamlreader.parse(content) as frameworkelement;
- xamldesigner:prism模块,提供xaml预览功能;
- xamleditor:prism模块,提供xaml编辑功能,提供智能提示喔,虽然比不上vs的全面强大,但一般使用足以;
- xamlservice:主要用于定义prism的event及command;
- xamltheme:提供样式相关的控件或辅助类;
- xamlutil:提供通用的算法之类的;
- xamlviewer:主项目,除上述之外的集大成者。
4. 文档管理
- 支持新建,打开,保存,关闭,拖动等操作;
- 支持预览与编辑面板位置交换操作;
- 支持在active files下拉列表中针对已打开的文件进行快速选择。
注意:在关闭软件时,只会自动保存已经存储在本地的文档,请务必在此之前,将需要保留的临时文档保存到本地。
5. 自动编译
- auto-compile 勾选框,开启或关闭自动编译功能,但手动编译[f5],一直生效;
- auto-compile delay 滑块,在无任何输入的指定时间后自动执行编译。
6. 第三方控件库的引用
[setting] >> [reference] >> [add]: 添加自定义控件库,可以在xaml中直接引用其中控件。
- 1. 当前软件基于.net framework 4.5,只要系统中包含.net framework 4.x(x >= 5),即可引用基于4.0--4.x任意版本的控件库;
- 2. 引用自定义控件库时,请按照以下形式声明命名空间:
xmlns:controls="clr-namespace:mycontrol.controls;assembly=mycontrol"
7. 写在最后
由于只是个人利用闲暇时间编写,精力有限,有些地方未必测试到位,代码也稍显简陋,注释欠缺,所以,在使用的过程中,若遇到各种各样的问题,对哪块代码理解不清的,或有更好的建议的,都可以在github上进行反馈,我看到后会尽量回应,请大家多多支持。
代码可以使用vs2012及以上版本进行编译,目前基于.net framework 4.5,后续有时间的话,我会调整为多目标编译,增加.net core 3.0。
github地址如下:https://github.com/huangjia2107/xamlviewer
推荐阅读
-
基于WPF&Prism&AvalonEdit的XAML轻量编辑器
-
一个基于原生JavaScript开发的、轻量的验证码生成插件
-
wangEditor-基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费(1)
-
基于React的适配PC端和移动端的轻量音乐播放器
-
基于WPF&Prism&AvalonEdit的XAML轻量编辑器
-
Chart.js 1.0 beta发布,基于HTML5的轻量图表库
-
一个基于原生JavaScript开发的、轻量的验证码生成插件
-
js实现基于正则表达式的轻量提示插件_javascript技巧
-
js实现基于正则表达式的轻量提示插件_javascript技巧
-
wangEditor-基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费(1)