XAML中的#region


70

我实际上不喜欢代码中的#region。但是出于某种原因让我发疯,我想将它们包含在我的XAML中。我希望整个部分都具有类似#region的内容并将其折叠(例如,我的<Window.CommandBindings>,<Grid。* Definitions>,<Menu>,<Toolbar>等)。

是否存在?如果不是,那么<RegionCollapse>


1
我喜欢这个主意,但是我不认为有任何类似的主意……但是您可以折叠任何XAML元素;)
Thomas Levesque 2010年

2
如果仍然 有用visualstudiogallery.msdn.microsoft.com/… 请发布,如果您发现了像ctrl + mo这样的快捷方式,它将折叠所有区域和节点
eran otzap 2012年

Answers:


127

注意:这是最初的正确答案,从某些方面来说还是一个好的选择,对于某些最佳答案,包括我在内。但我认为这最好地回答了原始问题。

Visual Studio 2015最终在XAML中添加了对区域的支持。您将您的区域代码封装如下:

<!--#region RegionName-->

All Your XAML In Here

<!--#endregion-->

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

不知道这实际上有多方便,因为我们已经可以折叠/扩展XAML编辑器中的任何节点。无论如何,如果您要使用它,就在那儿。


2
我认为,例如,如果我具有要分组的相同性质的多个控件,或者如果我想按类型(图像,样式等)对资源进行分组等,这可能会变得很方便
Sipo

对于使用Visual Studio 2015的任何人,这应该是公认的答案
DavidBožjak16年

我的用例来自VS2013,对于我来说,有时我不得不注释掉暂时搁置的XAML的大部分区域,并且我不想在编辑器中滚动浏览所有文本。我可能已经将所有内容卡在另一个XAML元素中,但是我喜欢新的#region功能。
戴夫

11
经过一番摆弄之后,我注意到此解决方案的一个小警告:标签对空间敏感。也就是说,您必须编写<!--#region Name-->,而不是<!-- #region Name-->(注意多余的空格)。这适用于开始和结束标签。我正在运行VS2015 Professional。
法师Xy'7

2
在Visual Studio 2017中不为我工作。我知道标签对空间敏感。
webo80 '17

53

2
谢谢!!当我回到Silverlight / WPF时会尝试一下。
肯尼

4
雅各布,您的扩展很棒!
Yann Duran

2
高超!VS团队应该将其整合。谢谢!
Skippy VonDrake

不错,但是您的解决方案和Microsoft的解决方案对我来说都有相同的问题。我希望能够通过将我的ignore名称空间c:放在region标记的开头来忽略整个区域。如果区域标签是注释,则此方法将无效。
凯尔·德莱尼

22

我可能会丢失您的请求的要点,但是XAML编辑器会自动在元素周围放置可折叠区域。注意编辑器窗口左栏中的节点。单击“-”,关联的元素折叠为单行,非常像#region。


2
+1,然后您可以将XML注释与XAML一起放入“标头”部分。
user7116 2010年

我知道这一点,但是当我打开文件时,我需要积极地进行操作,我希望它在打开文件时自动运行。
肯尼(Kenny)2010年

3
是的,没问题。编辑+大纲+切换。当您再次加载项目时,它将恢复状态,使其成为“自动”状态。
汉斯·帕桑

1
您可以自动折叠元素吗?像XAML的CTRL + M + O一样?
迈克·科尔

4
未来的用户:阅读更多答案,可以了解vs 2015(内置)或扩展。
马菲

9

不,但是根据微软的答复

这是一个很好的建议。非常感谢。我们将在以后的版本中考虑它


2
2015年就在这里……感叹
TheEye

@TheEye在2个以后版本(2017)有什么改变?
BKSpurgeon

过去两年没有使用XAML,对不起-很高兴回到Swift :-)
TheEye


4

在Visual Studio 2012 Update 4中,我能够选择很大一部分的XAML代码,右键单击并选择“隐藏选择”。(基本上用[...]标记折叠该部分,在展开之后,系统“记住”我想用行号旁边的[-]标记折叠该部分。


1

您可以使用SSI格式将注释添加到XAML文件:

<!-- Grid Styles -->
<style...>
<style...>

<!-- Window Styles -->
<style...>
<style...>
<style...>

如果使用内置的XML折叠,这至少会给您某种“标题”。


1

是,

VS2010会记住塌陷的区域,但是请注意,当我应用SP1时,它会停止工作(就像其他很多事情一样)。卸载VS2010(和所有扩展名)并执行以下安装过程之后,似乎已经记住了折叠的XAML元素:

  • 安装VS2010(以我为例)
  • 安装VS2010 Windows更新(包括一个XML编辑器,一个200MB以上)
  • 安装SP1安装
  • 安装VS2010 SP1 Windows更新

可能会帮助某人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.