我正在尝试为 VS 中的 XML 代码编写大纲(使用 VSIX 模板中的 SDK 的扩展),并且每当用户更改为不同的代码视图/文档时,我都希望获得事件调用。
然后,我计划检查文档类型,如果它确实是一个 xml 文档,则创建并呈现一个交互式大纲。
我将如何创建这样的挂钩,甚至有必要吗?
编辑
我尝试了以下实现,但有人告诉我该对象不包含“GetGlobalService”的定义
using System;
using System.Runtime.InteropServices;
using EnvDTE;
using Microsoft.VisualStudio.Shell;
[Guid("bc4c5e8f-a492-4a44-9e57-ec9ad945140e")]
public class OutlineWindow : ToolWindowPane
{
private DTE dte;
public OutlineWindow() : base(null)
{
this.Caption = "OutlineWindow";
this.Content = new OutlineWindowControl();
dte = Package.GetGlobalService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
dte.Events.WindowEvents.WindowActivated += OnWindowActivated;
}
private void OnWindowActivated(Window gotFocus, Window lostFocus)
{
throw new NotImplementedException();
}
}