c# – ScintillaNET和AvalonEdit,用於為WPF應用程式提供指令碼介面
作為指令碼語言. (至少這是初始計劃,我們可能會在其中一個完成).
ScintillaNET的一個缺點就是它只是一個託管包裝在本機(非託管)Scintilla周圍.這與WPF4一起使用會導致任何問題.
任何指標和建議都不勝感激.
我認為這取決於你要在編輯器中實現多少功能.還有多少工作你願意把它擴充套件它,以及你願意處理多少學習曲線.
如果你是Win32的目標,你不介意非託管的DLL,那麼我認為Scintilla.NET不會是一個問題.另外你也可以很容易地將其以WPF的方式託管為this 頁面.
我個人覺得Scintilla比AvalonEdit更好.使用基本編輯器也更容易入門,並提供了很多開箱即用的功能,例如Scintilla提供開箱即用的程式碼.
使用AvalonEdit,您必須建立一個摺疊策略並自己解析文件,這就是為了支援我尚未實現的AvalonEdit的IronPython所必須做的.
所有我需要支援IronPython編輯器在閃爍是SciLexer.dll在搜尋路徑和Scintilla.net彙編和以下配置:
private void Form1_Load(object sender, EventArgs e) { this.scintilla1 = new ScintillaNet.Scintilla(); this.scintilla1.ConfigurationManager.Language = "python"; this.scintilla1.Indentation.ShowGuides = true; this.scintilla1.Indentation.SmartIndentType = ScintillaNet.SmartIndent.Simple; this.scintilla1.Location = new System.Drawing.Point(0, 0); this.scintilla1.Margins.Margin0.Width = 40; this.scintilla1.Margins.Margin2.Width = 20; this.scintilla1.Name = "scintilla1"; this.scintilla1.TabIndex = 4; this.scintilla1.Whitespace.Mode = ScintillaNet.WhitespaceMode.VisibleAfterIndent; this.scintilla1.Dock = DockStyle.Fill; this.Controls.Add(this.scintilla1); }
對於AvalonEdit,您必須載入一個外部熒光筆檔案,您可以看到this 部落格文章瞭解更多資訊.所以,如果你想要的基礎(突出顯示,摺疊python c#)我的結論是,早飯更容易,表現更好.儘管使用AvalonEdit,如果您願意付出努力並處理學習曲線,您可能最終可以做更多的工作.目前我正在使用Scintilla作為我的穩定編輯,並且正在試驗Avalon作為概念證明.也許我會在更多地瞭解編輯的同時形成新的觀點.
祝你好運
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/8577627/scintillanet-vs-avalonedit-for-providing-scripting-interface-for-a-wpf-applicati