【问题标题】:How can you detect a XAML designer window in a VSPackage如何在 VSPackage 中检测 XAML 设计器窗口
【发布时间】:2021-01-31 07:51:50
【问题描述】:

在我的 VSPackage 中,我在 EnvDTE.WindowEvents 接口上有一个 WindowActivated 事件的事件处理程序。

在我的代码中,我检查激活的窗口是否是 WinForms 设计器(在 VB.NET 中)

If TypeOf GotFocus.Object Is IDesignerHost Then
  ...
End if

或带有

的 ASP 设计器窗口
If TypeOf GotFocus.Object Is EnvDTE.HTMLWindow Then
  ...
End if

检测 XAML 设计器窗口何时激活的最佳方法是什么?

当然,我可以检查标题中的文件扩展名(GotFocus.Caption),但我想知道是否有更好的方法。

【问题讨论】:

    标签: visual-studio vsix envdte vspackage


    【解决方案1】:

    文件扩展名可能不是一个好主意,因为您也可以使用股票代码编辑器打开 .XAML 文件 :-)

    我能想到的最简单的方法是利用IVsMonitorSelection 服务。

    使用 XAML 设计器上下文 guid {e9b8485c-1217-4277-b6d6-c825a5ac1968}(与 Component Diagnostics extension 一起找到)调用 GetCmdUIContextCookie,然后调用 IsCmdUIContextActive 以确定设计器是否已激活。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      • 2017-07-21
      相关资源
      最近更新 更多