我可以将Visual Studio中的设计面板与XAML面板分离吗?

85

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

我能做到但不喜欢的一些差劣解决方法是:

  1. 取消停靠整个带设计器的XAML编辑器,然后调整该窗口大小以跨越两个监视器,使得XAML代码在一个监视器上,WPF窗口在另一个监视器上。
  2. 使用“打开方式”打开同一XAML文档的第二个编辑器,但此时代码高亮和WPF窗口高亮没有同步。

那么它们能否分开呢?或者你有比我的更好的解决方案吗?


2
这篇 MSDN 博客文章(第 10 条提示)似乎表明你已经知道的两种解决方法是官方解决方案。http://blogs.msdn.com/b/wpfsldesigner/archive/2010/06/30/tips-and-tricks-for-working-with-the-wpf-and-silverlight-designer-in-visual-studio-2010.aspx - Chris Petheram
15
很遗憾,经过4年的时间他们仍未实现这个功能。多显示器设置至少已经普及使用了10年。 - Plain Coder
2
现在已经6年了,我想知道是否有什么变化。 - Ateik
1
@PlainCoder 更像是20年。 - John Stock
1
这个建议已经在开发者社区中至少提出了两次,但迄今为止还没有得到解决。我已经给最近的建议投了一票,链接了以前的建议和这个问题,并且最重要的是预先解释了为什么常见的解决方法不可行。 - LWChris
显示剩余3条评论
5个回答

83

我也曾遇到过这个问题,后来我找到了这样一种方法来单独分离它:

  • 解决方案资源管理器中右键点击XAML文件,并选择使用其他程序打开
  • 选择源代码(文本)编辑器(而不是XML(文本)编辑器)。

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


7
你有没有看到我上面提到的第二个解决方法?它正是你所建议的。 - Plain Coder
1
@PlainCoder,只是想确认一下,在VS2015中,这个方法非常好用,符号高亮(即使使用ReSharper 10也可以高亮)并且完全同步。看起来现在接受这个答案是安全的。 - Sevenate
1
@Sevenate 我的 Visual Studio 2015 没有按预期工作,并且无法同步语法高亮。 - Steve.NayLinAung
4
它是同步的,你做出改变后,另一个窗口也会更新——但不幸的是,你无法点击一个项目来在另一个窗口中查看相应的元素或代码 :-( - Simon_Weaver
是的,这只是一个不完整的解决方案,因为新窗口对旧窗口没有响应。 - j riv
显示剩余4条评论

12

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

点击其中一个选项将把 XAML 和设计分成两个独立的窗格,位于同一个窗口内。然后,可以在这些窗格之间切换。

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

这些选项如下所示:

XAML/Design toggle options


3

Visual Studio 2017新增了针对XAML的全新“编辑并继续”模式,非常棒!对我来说,这个功能已经取代了“分割”功能。

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

你可以直接在XAML中输入内容,应用程序将即时更新,所以将其放在任何屏幕上都可以。
我的Visual Studio编辑XAML变得非常缓慢,现在更新是即时的,并出现在实际运行的应用程序内部-这将使开发速度更快。

这也不是完整的解决方案,因为人们需要点击UI表示并转到XAML。 - j riv
另外,XAML的编辑并继续功能无法处理所有编辑。例如,在MergedDictionary中包含字典或添加DataTemplates似乎并不总是有效。 - Mike de Klerk
同时,您无法进行缩放。 - Ateik

0

使用弹出式的XAML选项,位于Design和XAML面板旁边,可以将XAML编辑器弹出到新窗口中,并可移动到另一个屏幕。元素高亮不起作用,但更改将实时反映。


-2
如果您有两个屏幕,请将设计窗口垂直拆分,从 Visual Studio 中取消停靠该窗口,然后调整窗口大小,使其宽度跨越您的双屏幕。

这正是他的第一选择。 - Ateik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接