XAML中的#region

ken*_*nny 60 wpf xaml visual-studio

我实际上不喜欢我的代码中的#region.由于某种原因让我发疯,我想把它们放在我的XAML中.我希望整个部分都有#region-like的东西并将它们折叠起来(例如我的<Window.CommandBindings>,<Grid.*Definitions>,<Menu>,<Toolbar>等等.

这存在吗?如果没有,<RegionCollapse>怎么样

dot*_*NET 98

OP注意:这是原始的正确答案,在某些方面仍然是一个好的,包括我在内的最佳答案.但是,我认为这最能回答原始问题.

Visual Studio 2015最终在XAML中添加了对区域的支持.您将区域代码包含在内:

<!--#region RegionName-->

All Your XAML In Here

<!--#endregion-->
Run Code Online (Sandbox Code Playgroud)

这将在起始行的左侧添加折叠图标,您可以使用该图标展开/折叠该区域.

不知道这实际上有多方便,因为我们已经可以在XAML编辑器中折叠/展开任何节点.无论如何,如果你想使用它就在那里.

  • 经过一番摆弄后,我注意到这个解决方案有一个小小的警告:标签是空间敏感的.也就是说,你必须写`<! - #region Name - >`,NOT` <! - #region Name - >`(注意额外的空格).这适用于起始和结束标签.我正在运行VS2015 Professional. (10认同)
  • 我认为如果例如我有多个相同性质的控件要分组,或者如果我想按类型(图像、样式等)对资源进行分组等,它会变得很方便…… (3认同)
  • 在Visual Studio 2017中不为我工作。我知道标签对空间敏感。 (2认同)

Jac*_*obJ 52

我编写了一个Visual Studio扩展来执行此操作.

  • 雅各布,你的扩展是一流的! (4认同)
  • 谢谢!!当我回到Silverlight/WPF时,我会尝试一下. (2认同)
  • 高超!VS团队应该整合这个.谢谢! (2认同)

Han*_*ant 21

我可能会忽略您的请求,但XAML编辑器会自动将可折叠区域放在元素周围.请注意编辑器窗口左栏中的节点.单击" - ",关联的元素将折叠为单行,非常类似于#region.

  • 是的,没问题.编辑+大纲+切换.当您再次加载项目时,它将恢复状态,使其"自动". (3认同)
  • 未来用户:阅读更多答案,可以与vs 2015(内置)或扩展程序约会. (3认同)
  • +1,您可以使用XAML将XML注释放入"标题"部分. (2认同)

Jus*_*ier 9

不,但根据微软的回复:

这是一个很好的建议.非常感谢.我们将考虑将来发布

  • 我们在2015年...*叹气* (2认同)