我可以在Visual Studio中将设计窗格与XAML窗格分开吗?


83

是否可以将我正在设计的WPF窗口与其XAML代码分开?双击任何XAML文件都将打开该文件,并在一个窗口中同时显示XAML代码和WPF窗口,将它们水平或垂直拆分,但仍然都在一个窗口中。我有4个监视器,我编写的XAML代码行很长,因此我想单独在一个监视器上编辑XAML代码,在另一个监视器上查看WPF窗口,但是似乎没有将它们分成两个不同的窗口可能。

我可以执行但我不喜欢的几个糟糕的解决方法是:

  1. 与设计人员解除对整个XAML编辑器的对接,然后在两个监视器上调整该窗口的大小,以使XAML代码位于一个监视器上,而WPF窗口位于另一个监视器上。
  2. 使用“打开方式...”打开同一XAML文档的第二个编辑器,但是代码突出显示和WPF窗口突出显示不同步。

那么可以拆分它们吗?或者,也许您有比我更好的解决方法?


2
该msdn博客文章(技巧10)似乎暗示您已经知道的两种解决方法是官方解决方案。blogs.msdn.com/b/wpfsldesigner/archive/2010/06/30/…–
克里斯·佩瑟南

14
令人遗憾的是,四年之后他们仍然没有实现此功能。多显示器设置已经普遍使用了至少10年。
普通编码器2014年

2
6年了,我想知道是否有所改变
Ateik '16

1
@PlainCoder更像20年。
John Stock

1
2019我们就在这里,它仍然没有实现:D
Zeta

Answers:


79

我遇到了同样的问题,然后我找到了一种将其分开的方法,

  • 右键单击解决方案资源管理器中的XAML文件,然后选择“打开方式”
  • 选择源代码(文本)编辑器(而不是XML(文本)编辑器)。

这会为XAML源代码编辑器创建一个单独的选项卡,只需将其取消停靠并创建一个新窗口即可。


6
您是否已阅读上面的第二个解决方法?这正是您的建议。
普通编码器2014年

1
@PlainCoder,只想确认它在VS2015中的效果和预期的一样好-语法高亮(即使是ReSharper 10高亮)也完全同步。现在接受这个答案似乎很安全。
Sevenate 2015年

我可以确认这也可以像@Sevenate描述的那样在VS2013中使用。
Kidiskidvogingogin

1
@Sevenate我的visual studio 2015无法按预期方式工作,并且不同步语法突出显示。
Steve.NayLinAung

3
它在您进行更改和更新另一个窗口的意义上是同步的-但是很遗憾,您无法单击某个项目在另一个窗口中查看相应的元素或代码:-(
Simon_Weaver

12

单击XML代码右侧的双箭头按钮。

单击这些选项之一将XAML和“设计”分离到同一窗口内的两个单独的窗格中。从那里,可以切换窗格。

要恢复到原始配置,请>>再次单击双箭头按钮。

这些选项在下面突出显示:

XAML /设计切换选项


3

Visual Studio 2017为XAML提供了一个新的``编辑并继续''模式,这真的很棒,对我来说,不再需要这种``拆分''功能。

https://blogs.msdn.microsoft.com/visualstudio/2016/04/06/ui-development-made-easier-with-xaml-edit-continue/

您可以从字面上键入XAML并让正在运行的应用程序立即更新-请将其放在所需的任何屏幕上。

我对XAML的Visual Studio编辑变得超级慢,并且更新是即时的,并且在实际运行的应用程序中进行-将使开发变得如此之快。


这也不是一个完整的解决方案,因为人们需要单击UI表示并转到XAML。
j riv

此外,XAML的编辑并继续无法处理所有编辑。例如,在MergedDictionary中包含Dictionary或添加DataTemplates似乎并不总是有效。
迈克·德·克莱克

您也无法放大
Ateik '18

0

使用“设计和XAML窗格”旁边的弹出XAML选项,这会将XAML编辑器弹出到一个新窗口,该窗口可以移动到另一个屏幕。元素高亮将不起作用,但更改将即时显示。


-2

如果有两个屏幕,请垂直拆分设计器窗口,将窗口从Visual Studio中移出,然后调整窗口大小,以使宽度跨过双屏幕。


那就是他的第一选择
Ateik '16
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.