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