zoukankan      html  css  js  c++  java
  • 基于WPF&Prism&AvalonEdit的XAML轻量编辑器

    1. 写在前面

            一直从事WPF的相关开发工作,有时为了尝试或演示某些仅仅基于XAML的效果时,但又不想大动干戈打开VS去创建项目,所以一个轻便简单,集编辑与预览于一身的XAML编辑器就显得格外重要。

    • Kaxaml,集编辑与预览,过去一直在使用,但苦于不知何原因,最近频频崩溃,虽然开源有代码可循,但也懒的下载调试;
    • XAML Studio,只能在Win10上使用,且只适用于UWP,被迫放弃。

    那么,干脆自己动手,丰衣足食!这样,XAML Viewer诞生了,而且完全开源!

    2. 界面预览

            非专业美工设计,加上VS的文档编辑结构正合我意,而且个人相对比较中意VS的设计风格,所以就不折磨自己了。

    3. 项目构成

            软件主要基于WPF,PrismAvalonEdit,唯一核心代码如下(其他均为锦上添花):

      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

  • 相关阅读:
    MySQL:批量修改表的排序规则
    Python黑客编程3网络数据监听和过滤
    springboot redis 项目实战 完整篇
    C#读取U盘序列号
    AS3,ReferenceError: Error #1056: 无法为 ×× 创建属性 ×××。
    知道挖掘机如何从货车上下来吗?
    一次进销存软件架构的实践(二)——业务外观层设计
    重构你的软件企业
    遇到了火狐扩展全部丢失的问题
    分布式系统设计原理与方案
  • 原文地址:https://www.cnblogs.com/alannever/p/12767677.html
Copyright © 2011-2022 走看看