基於WPF&Prism&AvalonEdit的XAML輕量編輯器

1. 寫在前面git

        一直從事WPF的相關開發工做,有時爲了嘗試或演示某些僅僅基於XAML的效果時,但又不想大動干戈打開VS去建立項目,因此一個輕便簡單,集編輯與預覽於一身的XAML編輯器就顯得格外重要。github

  • Kaxaml,集編輯與預覽,過去一直在使用,但苦於不知何緣由,最近頻頻崩潰,雖然開源有代碼可循,但也懶的下載調試;
  • XAML Studio,只能在Win10上使用,且只適用於UWP,被迫放棄。

那麼,乾脆本身動手,豐衣足食!這樣,XAML Viewer誕生了,並且徹底開源!算法

2. 界面預覽編輯器

        非專業美工設計,加上VS的文檔編輯結構正合我意,並且我的相對比較中意VS的設計風格,因此就不折磨本身了。測試

3. 項目構成spa

        軟件主要基於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下拉列表中針對已打開的文件進行快速選擇。

注意:在關閉軟件時,只會自動保存已經存儲在本地的文檔,請務必在此以前,將須要保留的臨時文檔保存到本地。code

5. 自動編譯xml

  • 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

相關文章
相關標籤/搜索