Как программно отобразить окно настраиваемого инструмента в первой позиции в Visual Studio

Я создал расширение окна инструмента в Visual Studio на основе приведенной ниже ссылки. Как убедиться, что оно первым закреплено как окно с вкладками в выходном проекте?

https://docs.microsoft.com/en-us/visualstudio/extensibility/creating-an-extension-with-a-tool-window?view=vs-2019

В WizardPackage.cs это атрибуты, которые я использую

[PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
    [Guid(TeamsWizardPackage.PackageGuidString)]
    [ProvideMenuResource("Menus.ctmenu", 0)]
    [ProvideToolWindow(typeof(TeamsWindow), Orientation = ToolWindowOrientation.Left, DocumentLikeTool = true, Style = Microsoft.VisualStudio.Shell.VsDockStyle.Tabbed, Window = "3ae79031-e1bc-11d0-8f78-00a0c9110057")]
    [ProvideToolWindowVisibility(typeof(TeamsWindow), VSConstants.UICONTEXT.SolutionExists_string, Name = "Teams Overview")]

Окно отображается в третьей позиции. Мне нужно показать это окно в первой позиции. Я попытался закрыть первые два окна программно, но не знаю, как их закрыть. Есть ли способ показать это окно в первой позиции?

введите здесь описание изображения


person Deepak Kothari    schedule 19.02.2020    source источник


Ответы (1)


Я заставил это работать, закрыв первые два окна.

Обычно типом первых двух окон является «Документ», а для третьего окна - «Инструмент».

Окно средства разработки (DTE) содержит создаваемый выходной проект / решение / окна. Мы можем использовать его, как показано ниже, и закрыть первые два окна, используя соответствующие методы жизненного цикла IWizard.

using EnvDTE;

 public DTE dte;

public void RunStarted(object automationObject,
 Dictionary<string, string> replacementsDictionary,           
  WizardRunKind runKind, object[] customParams)          
 {
dte = automationObject as DTE;
 }

public void RunFinished()
        {
            foreach (Window documentWindow in dte.Windows)
            {
        //close all Document type of windows from the output project  
                if (documentWindow.Kind == "Document")
                {
                    documentWindow.Close();
                }
            }

        }
person Deepak Kothari    schedule 21.02.2020