{"id":18215,"date":"2024-03-15T16:28:22","date_gmt":"2024-03-15T16:28:22","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/"},"modified":"2024-03-21T12:46:36","modified_gmt":"2024-03-21T12:46:36","slug":"what-is-the-usage-of-avalonedit-in-wpf","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/","title":{"rendered":"What is the usage of AvalonEdit in WPF?"},"content":{"rendered":"<p>AvalonEdit is an open-source WPF control used for displaying and editing text. It is developed based on ICSharpCode.TextEditor and comes with many powerful features and extensibility.<\/p>\n<p>Here are some common uses of AvalonEdit:<\/p>\n<ol>\n<li>Add the AvalonEdit control to your WPF window or user control.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">avalonedit:TextEditor<\/span> <span class=\"hljs-attr\">x:Name<\/span>=<span class=\"hljs-string\">\"textEditor\"<\/span> \/&gt;<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Please set the text content.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>textEditor.Text = <span class=\"hljs-string\">\"Hello, AvalonEdit!\"<\/span>;\r\n<\/code><\/pre>\n<ol>\n<li>Obtain the current text content:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-built_in\">string<\/span> text = textEditor.Text;\r\n<\/code><\/pre>\n<ol>\n<li>Enable syntax highlighting.<\/li>\n<\/ol>\n<p>AvalonEdit supports syntax highlighting for various languages, you can achieve this by setting a syntax definition file to the control&#8217;s SyntaxHighlighting property.<\/p>\n<pre class=\"post-pre\"><code>textEditor.SyntaxHighlighting = HighlightingManager.Instance.GetDefinition(<span class=\"hljs-string\">\"C#\"<\/span>);\r\n<\/code><\/pre>\n<ol>\n<li>Enable auto-complete feature.<\/li>\n<\/ol>\n<p>AvalonEdit can provide autocomplete functionality by adding custom code completion logic.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">var<\/span> completionWindow = <span class=\"hljs-keyword\">new<\/span> CompletionWindow(textEditor.TextArea);\r\ncompletionWindow.CloseWhenCaretAtBeginning = <span class=\"hljs-literal\">true<\/span>;\r\n\r\nIList&lt;ICompletionData&gt; completionData = completionWindow.CompletionList.CompletionData;\r\ncompletionData.Add(<span class=\"hljs-keyword\">new<\/span> MyCompletionData(<span class=\"hljs-string\">\"Item 1\"<\/span>));\r\ncompletionData.Add(<span class=\"hljs-keyword\">new<\/span> MyCompletionData(<span class=\"hljs-string\">\"Item 2\"<\/span>));\r\n\r\ncompletionWindow.Show();\r\n<\/code><\/pre>\n<ol>\n<li>Enable code folding feature.<\/li>\n<\/ol>\n<p>AvalonEdit allows users to fold and unfold code blocks.<\/p>\n<pre class=\"post-pre\"><code>textEditor.TextArea.TextView.LineTransformers.Add(<span class=\"hljs-keyword\">new<\/span> FoldingManager(textEditor.TextArea.Document));\r\n<\/code><\/pre>\n<ol>\n<li>Handle text change events.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>textEditor.TextChanged += TextEditor_TextChanged;\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">TextEditor_TextChanged<\/span>(<span class=\"hljs-params\"><span class=\"hljs-built_in\">object<\/span> sender, EventArgs e<\/span>)<\/span>\r\n{\r\n    <span class=\"hljs-comment\">\/\/ \u5904\u7406\u6587\u672c\u6539\u53d8\u4e8b\u4ef6<\/span>\r\n}\r\n<\/code><\/pre>\n<p>These are just some basic usage of AvalonEdit, it also offers many other features such as code snippet insertion, code completion, and smart indentation. You can learn more usage and features by checking out AvalonEdit&#8217;s documentation and examples.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AvalonEdit is an open-source WPF control used for displaying and editing text. It is developed based on ICSharpCode.TextEditor and comes with many powerful features and extensibility. Here are some common uses of AvalonEdit: Add the AvalonEdit control to your WPF window or user control. &lt;avalonedit:TextEditor x:Name=&#8221;textEditor&#8221; \/&gt; Please set the text content. textEditor.Text = &#8220;Hello, [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-18215","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is the usage of AvalonEdit in WPF? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the usage of AvalonEdit in WPF?\" \/>\n<meta property=\"og:description\" content=\"AvalonEdit is an open-source WPF control used for displaying and editing text. It is developed based on ICSharpCode.TextEditor and comes with many powerful features and extensibility. Here are some common uses of AvalonEdit: Add the AvalonEdit control to your WPF window or user control. &lt;avalonedit:TextEditor x:Name=&quot;textEditor&quot; \/&gt; Please set the text content. textEditor.Text = &quot;Hello, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T16:28:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T12:46:36+00:00\" \/>\n<meta name=\"author\" content=\"Ava Mitchell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ava Mitchell\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/\"},\"author\":{\"name\":\"Ava Mitchell\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\"},\"headline\":\"What is the usage of AvalonEdit in WPF?\",\"datePublished\":\"2024-03-15T16:28:22+00:00\",\"dateModified\":\"2024-03-21T12:46:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/\"},\"wordCount\":159,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/\",\"name\":\"What is the usage of AvalonEdit in WPF? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T16:28:22+00:00\",\"dateModified\":\"2024-03-21T12:46:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the usage of AvalonEdit in WPF?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\",\"name\":\"Ava Mitchell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"caption\":\"Ava Mitchell\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the usage of AvalonEdit in WPF? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/","og_locale":"en_US","og_type":"article","og_title":"What is the usage of AvalonEdit in WPF?","og_description":"AvalonEdit is an open-source WPF control used for displaying and editing text. It is developed based on ICSharpCode.TextEditor and comes with many powerful features and extensibility. Here are some common uses of AvalonEdit: Add the AvalonEdit control to your WPF window or user control. &lt;avalonedit:TextEditor x:Name=\"textEditor\" \/&gt; Please set the text content. textEditor.Text = \"Hello, [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T16:28:22+00:00","article_modified_time":"2024-03-21T12:46:36+00:00","author":"Ava Mitchell","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Ava Mitchell","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/"},"author":{"name":"Ava Mitchell","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64"},"headline":"What is the usage of AvalonEdit in WPF?","datePublished":"2024-03-15T16:28:22+00:00","dateModified":"2024-03-21T12:46:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/"},"wordCount":159,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/","name":"What is the usage of AvalonEdit in WPF? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T16:28:22+00:00","dateModified":"2024-03-21T12:46:36+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-avalonedit-in-wpf\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the usage of AvalonEdit in WPF?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64","name":"Ava Mitchell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","caption":"Ava Mitchell"},"url":"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=18215"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18215\/revisions"}],"predecessor-version":[{"id":51879,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18215\/revisions\/51879"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=18215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=18215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=18215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}