{"id":803,"date":"2013-08-09T09:00:00","date_gmt":"2013-08-09T09:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/2013\/08\/09\/xaml-editor-improvements-in-visual-studio-2013\/"},"modified":"2021-07-28T05:33:02","modified_gmt":"2021-07-28T12:33:02","slug":"xaml-editor-improvements-in-visual-studio-2013","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/xaml-editor-improvements-in-visual-studio-2013\/","title":{"rendered":"XAML Editor Improvements in Visual Studio 2013"},"content":{"rendered":"<p>While many of you like creating XAML using our visual tools, many prefer creating XAML in the code editor as well. Your feedback was heard loud and clear and we have taken a crack at the <a href=\"http:\/\/visualstudio.uservoice.com\/forums\/121579-visual-studio\/category\/44115-xaml-tools\">top<\/a> XAML editor feature requests in Visual Studio 2013. This blog post describes the new editor features in detail and how you can use them!<\/p>\n<h2>IntelliSense for Data Binding<\/h2>\n<p>IntellISense for properties of the current data context is now available in binding expressions. In order for the editor to resolve the properties we require the data context to be specified on the view and not set in code-behind. If you choose to specify the DataContext in code-behind you can set the design-time DataContext in the view and we will able to piggyback off that for resolving properties in binding expressions.<\/p>\n<p>Furthermore for getting binding IntelliSense in resources like data templates which may be defined in external resource dictionaries you can either choose to set the design time DataContext on the data template or if you navigate to the data template using Go To Definition (F12) we will do the work required to copy the right DataContext over. It saves you from having to explicitly set the design time DataContext on the data template.<\/p>\n<h3>IntelliSense with resolved DataContext<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/2311.clip_image002_thumb_107512DD.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"IntelliSense with resolved DataContext\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/2311.clip_image002_thumb_107512DD.jpg\" alt=\"IntelliSense with resolved DataContext\" width=\"572\" height=\"224\" border=\"0\" \/><\/a><\/p>\n<h3>IntelliSense with design time DataContext<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/7115.clip_image004_thumb_08E9A370.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"IntelliSense with design time DataContext\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/7115.clip_image004_thumb_08E9A370.jpg\" alt=\"IntelliSense with design time DataContext\" width=\"613\" height=\"227\" border=\"0\" \/><\/a>As you can see both ways of setting the DataContext result in the exact same intelliSense.<\/p>\n<h2>Go To Definition<\/h2>\n<p>Go To Definition (F12)\u00a0 is now enabled on Resources (Local, System &amp; Extension SDK), Bindings, Properties and XAML Elements (UserControls, CustomControls &amp; System types). In the following section, let\u2019s look into the changes in more detail.<\/p>\n<h3>Resource<\/h3>\n<p>Executing Go To Definition on a resource reference will navigate you to the definition of the resource. This works for local, system and resource references from extension SDK\u2019s. When applicable, designer is scoped into the resource on executing Go To Definition. This allows us to copy over the DataContext of the parent control, thus enabling IntelliSense for data bindings inside these resources.<\/p>\n<p>For example, let\u2019s say you call Go to Definition on ApplicationPageBackgroundThemeBrush:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/1261.clip_image006_thumb_56199CFB-1.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-233572\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/1261.clip_image006_thumb_56199CFB-1.jpg\" alt=\"Image 1261 clip image006 thumb 56199CFB\" width=\"730\" height=\"274\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/1261.clip_image006_thumb_56199CFB-1.jpg 730w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/1261.clip_image006_thumb_56199CFB-1-300x113.jpg 300w\" sizes=\"(max-width: 730px) 100vw, 730px\" \/><\/a><\/p>\n<p>Notice that you are taken to the exact location where that resource was defined:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/8032.clip_image008_thumb_0E581414.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"exact location where that resource was defined\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/8032.clip_image008_thumb_0E581414.jpg\" alt=\"exact location where that resource was defined\" width=\"822\" height=\"151\" border=\"0\" \/><\/a><\/p>\n<h3>System type<\/h3>\n<p>You can use Go to Definition on System or Extension SDK types. Doing so will navigate you directly to the <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/exy1facf(v=vs.100).aspx\">Object Browser<\/a>:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/3771.clip_image010_thumb_3FE381A9-1.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-233573\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/3771.clip_image010_thumb_3FE381A9-1.jpg\" alt=\"Object Browser\" width=\"770\" height=\"198\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/3771.clip_image010_thumb_3FE381A9-1.jpg 770w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/3771.clip_image010_thumb_3FE381A9-1-300x77.jpg 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/3771.clip_image010_thumb_3FE381A9-1-768x197.jpg 768w\" sizes=\"(max-width: 770px) 100vw, 770px\" \/><\/a><\/p>\n<h3>Local type (Custom control)<\/h3>\n<p>UserControl\u2019s and custom controls are generally composed of a type definition and a XAML file defining their look and feel. We wanted to make it super easy to navigate to both the type and the XAML file. Therefore when you call Go To Definition on either of these types we surface both the xaml file and its implementation in the Find Symbol Results window.<\/p>\n<p>For example, let\u2019s say we call Go To Definition on a custom control called CustomControl1:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/4375.clip_image012_thumb_7B36E767.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"Go To Definition on a custom control\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/4375.clip_image012_thumb_7B36E767.jpg\" alt=\"Go To Definition on a custom control\" width=\"425\" height=\"244\" border=\"0\" \/><\/a><\/p>\n<p>What gets returned are the results from Generic.xaml as well as CustomControl1.cs:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/4380.clip_image014_thumb_25A31885.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"Return results from XAML as well as CS\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/4380.clip_image014_thumb_25A31885.jpg\" alt=\"Return results from XAML as well as CS\" width=\"711\" height=\"169\" border=\"0\" \/><\/a><\/p>\n<h3>Binding Expression<\/h3>\n<p>You can call Go To Definition on a binding expression. If the DataContext of a binding expression can be resolved, we enable direct navigation to the property definition in code (managed) or to the <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/exy1facf(v=vs.100).aspx\">Object Browser<\/a> (native). When we are unable to resolve the DataContext of a binding expression, we do a full symbol search (only in managed projects) on the value of the Path property of the binding expression. These results are then surfaced in the <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/vstudio\/s657e5he(v=vs.100).aspx\">Find Symbol Results<\/a> window.<\/p>\n<h2>IntelliSense for Resources<\/h2>\n<p>While working with resources in the editor you end up switching back and forth between multiple documents to complete a simple resource reference. With IntelliSense for resources you no longer have to do that, resources in your project show up in IntellISense while completing markup extensions. The cases we addressed are:<\/p>\n<h3>Setting Grid.Background to a System brush<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/0181.clip_image016_thumb_1A0D5B46.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"Setting Grid.Background to a System brush\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/0181.clip_image016_thumb_1A0D5B46.jpg\" alt=\"Setting Grid.Background to a System brush\" width=\"845\" height=\"249\" border=\"0\" \/><\/a><\/p>\n<h3>Setting TextBlockStyle to a System style<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/8424.clip_image018_thumb_406F3E91.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"Setting TextBlockStyle to a System style\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/8424.clip_image018_thumb_406F3E91.jpg\" alt=\"Setting TextBlockStyle to a System style\" width=\"578\" height=\"205\" border=\"0\" \/><\/a><\/p>\n<h3>Setting GridView.Style to a Local resource<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/5707.clip_image020_thumb_2B118929.jpg\"><img decoding=\"async\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"Support for &quot;insert snippet&quot; and &quot;surround with&quot; commands in XAML editor\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/5707.clip_image020_thumb_2B118929.jpg\" alt=\"Support for &quot;insert snippet&quot; and &quot;surround with&quot; commands in XAML editor\" width=\"549\" height=\"111\" border=\"0\" \/><\/a><\/p>\n<h2>Code Snippets<\/h2>\n<p><a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms165392(v=vs.80).aspx\">Code Snippets<\/a> have been a staple feature for all languages in Visual Studio. We have now added support for both \u201c<a href=\"http:\/\/msdn.microsoft.com\/en-US\/library\/ms165399(v=vs.100).aspx\">Insert Snippet<\/a>\u201d and \u201c<a href=\"http:\/\/msdn.microsoft.com\/en-US\/library\/ms165399(v=vs.100).aspx\">Surround With<\/a>\u201d commands in the XAML editor:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/5228.clip_image022_thumb_113D52FA.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"clip_image022\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/5228.clip_image022_thumb_113D52FA.jpg\" alt=\"clip_image022\" width=\"362\" height=\"311\" border=\"0\" \/><\/a><\/p>\n<p>Snippets can be imported using the <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/9ybhaktf(v=vs.80).aspx\">Code Snippets Manager<\/a>:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/4276.clip_image024_thumb_509B068A.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"Snippets can be imported using the Code Snippets Manager\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/4276.clip_image024_thumb_509B068A.jpg\" alt=\"Snippets can be imported using the Code Snippets Manager\" width=\"625\" height=\"466\" border=\"0\" \/><\/a><\/p>\n<p>As of now there are no snippets packaged with the product but we are planning to release some in the very near future. Stay tuned!<\/p>\n<h2>Better commenting support<\/h2>\n<p>The XML standard does not support nested comments, but we have added support to ensure that the result of commenting a region of code which already contains comments will be standards compliant:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/6013.clip_image025_6A80CFED.gif\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"Better commenting support\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/6013.clip_image025_6A80CFED.gif\" alt=\"Better commenting support\" width=\"770\" height=\"401\" border=\"0\" \/><\/a><\/p>\n<h2>IntelliSense matching<\/h2>\n<p>We have updated IntelliSense matching support in the XAML editor to include camel case, substring and fuzzy matching.<\/p>\n<h3>Fuzzy matching<\/h3>\n<p>Notice how we select StackPanel even though you might have mistyped it as \u2018StakPa\u201d.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/7840.clip_image027_thumb_4EEA3AB6.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"Fuzzy matching intellisense\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/7840.clip_image027_thumb_4EEA3AB6.jpg\" alt=\"Fuzzy matching intellisense\" width=\"624\" height=\"229\" border=\"0\" \/><\/a><\/p>\n<h3>CamelCase matching<\/h3>\n<p>You don\u2019t need to type long Type names anymore. Its abbreviation will work just fine, e.g typing \u201cABB\u201d will select AppBarButton.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/8764.clip_image029_thumb_5C504DBC.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"CamelCase matching intellisense\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/8764.clip_image029_thumb_5C504DBC.jpg\" alt=\"CamelCase matching intellisense\" width=\"674\" height=\"226\" border=\"0\" \/><\/a><\/p>\n<h3>Substring matching<\/h3>\n<p>For example, typing \u201cSized\u201d will select VariableSizedWrapGrid.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/2084.clip_image031_thumb_5FEE6899.jpg\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"Substring matching intellisense\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/2084.clip_image031_thumb_5FEE6899.jpg\" alt=\"Substring matching intellisense\" width=\"636\" height=\"229\" border=\"0\" \/><\/a><\/p>\n<h2>Start Tag \/ End Tag refactoring<\/h2>\n<p>This feature automatically updates the start or end tag of a XAML element while you are editing its corresponding start or end tag. Moreover adding the \u2018\/\u2019 character to a start tag will remove the corresponding end tag without affecting the element\u2019s inner content.<\/p>\n<h3>Tag refactoring<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/0640.clip_image001_62F56080-1.gif\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-233574\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/0640.clip_image001_62F56080-1.gif\" alt=\"Tag Refactoring\" width=\"770\" height=\"401\" \/><\/a><\/p>\n<h3>Removing the end tag<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/6428.clip_image033_5BD62408.gif\"><img decoding=\"async\" class=\"aligncenter\" style=\"float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; padding-right: 0px; margin-right: auto; border: 0px;\" title=\"Removing the end tag\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/6428.clip_image033_5BD62408.gif\" alt=\"Removing the end tag\" width=\"770\" height=\"401\" border=\"0\" \/><\/a><\/p>\n<h2>Other Improvements<\/h2>\n<p>We have made some significantimprovements to the performance of the editor. Instant outlining and faster IntelliSense startup are some of the areas we focused on during this release . For example, we brought down the IntelliSense startup time of one of our large WPF test projects from over 24 seconds to 6.78.<\/p>\n<p>Some of the features described here will not work in Source Code mode as we require the XAML view to be built in order to resolve resources and binding references. All the improvements highlighted here will be available for all<strong> XAML platforms <\/strong>(WPF, Silverlight, Windows Phone and Windows Store) in the next public release of Visual Studio.<\/p>\n<p>The markup editor also provides support for other new Visual Studio editor features like:<\/p>\n<ul>\n<li><strong>Move line up\/down<\/strong> (Alt + Up Arrow, Alt + Down Arrow)<\/li>\n<li><strong>Scrollbar enhancements<\/strong><\/li>\n<\/ul>\n<p>To learn more about these, take a look at the <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2013-new-editor-features\/\">Visual Studio 2013 Editor Improvements blog post<\/a>.<\/p>\n<p>On a final note, we are interested in knowing more about what you think about these experiences and what you would like to see in the XAML editor going forward. Please send us your feedback through replies to this post, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\">Connect<\/a> bugs, <a href=\"http:\/\/visualstudio.uservoice.com\/forums\/121579-visual-studio\/category\/44115-xaml-tools\">User Voice<\/a> requests or the new Send a Smile button inside Visual Studio.<\/p>\n<p>&nbsp;<\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"121\"><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/8883.clip_image035_thumb_705B7386.jpg\"><img decoding=\"async\" style=\"padding-top: 0px; padding-left: 0px; padding-right: 0px; border: 0px;\" title=\"clip_image035\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2013\/08\/8883.clip_image035_thumb_705B7386.jpg\" alt=\"clip_image035\" width=\"108\" height=\"141\" border=\"0\" \/><\/a><\/td>\n<td valign=\"top\" width=\"517\"><strong>Harikrishna Menon<\/strong> &#8211; Program Manager, Visual Studio Client Tools Team<\/p>\n<p>Hari is a Program Manager with Microsoft and works on the Xaml Tools Team in Visual Studio. He has been with Microsoft for over 5 years and has worked on a variety of products built on server-side and client-side technologies. He owns the XAML editor features and is responsible for other features like Behaviors SDK &amp; Diagnostics.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>While many of you like creating XAML using our visual tools, many prefer creating XAML in the code editor as well. Your feedback was heard loud and clear and we have taken a crack at the top XAML editor feature requests in Visual Studio 2013. This blog post describes the new editor features in detail [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[12,126,133],"class_list":["post-803","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio","tag-visual-studio","tag-visual-studio-2013","tag-xaml"],"acf":[],"blog_post_summary":"<p>While many of you like creating XAML using our visual tools, many prefer creating XAML in the code editor as well. Your feedback was heard loud and clear and we have taken a crack at the top XAML editor feature requests in Visual Studio 2013. This blog post describes the new editor features in detail [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=803"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/803\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}