Скрыть свойства/панель инструментов, если нет в представлении ресурсов?

Каждый раз, когда я просматриваю форму или диалог в Visual Studio (2005), панели свойств и панели инструментов отображаются в правой части экрана. Это хорошо, потому что они полезны для манипулирования диалоговыми окнами.

Однако, как только я вернусь к исходному коду, эти панели просто мешают... есть ли способ заставить их автоматически уйти?

Ответы

Ответ 1

Недавно я сделал что-то в VS2010, используя макрос, который показывает и скрывает панель "Инструменты" при переключении взад и вперед от кода к дизайну в представлениях asp.net MVC3. Это можно легко адаптировать, чтобы сделать то же самое для вашей ситуации, я думаю.

Это происходит в файле класса EnvironmentEvents, который находится в среде макросов VS Macro после предварительно созданного содержимого.

<System.ContextStaticAttribute()> Public WithEvents CommandEvents As EnvDTE.CommandEvents


  Public Sub DTEEvents_OnMacrosRuntimeReset() Handles _
  DTEEvents.OnMacrosRuntimeReset
        CommandEvents = DTE.Events.CommandEvents
    End Sub

    Private Sub DTEEvents_OnStartupComplete() Handles _
        DTEEvents.OnStartupComplete
        CommandEvents = DTE.Events.CommandEvents
    End Sub

    Public Sub CommandEvents_AfterExecute( _
    ByVal Guid As String, _
    ByVal ID As Integer, _
    ByVal CustomIn As Object, _
    ByVal CustomOut As Object) _
    Handles CommandEvents.AfterExecute

        If DTE.Commands.Item(Guid, ID).Name = "View.ViewDesigner" Then
            DTE.ExecuteCommand("View.Toolbox")
        End If

        If DTE.Commands.Item(Guid, ID).Name = "View.ViewMarkup" Then
            DTE.Windows.Item(Constants.vsWindowKindToolbox).Close()
        End If

    End Sub

Вероятно, он лучше оптимизирован с использованием команд события, а не операторов if. Он работает, когда вы используете горячие клавиши для переключения видов, а также меню просмотра, но не контекстное меню.

Ответ 2

для vs2015:

  • Меню > Инструменты > Расширения и обновления
  • установите "Visual Commander". (Теперь у вас есть новое меню под названием "VCmd" )
  • Меню > "VCmd" > Расширения... (Вы увидите панель расширения справа)
  • Нажмите кнопку "Добавить" на панели "Расширения". (Открывается новая вкладка WIndow.)
  • напишите имя для расширения.
  • выберите язык как С#.
  • вставьте следующий код:
  • Нажмите "Сохранить". Затем нажмите "Скомпилировать". Затем нажмите "Установить"

using EnvDTE;
using EnvDTE80;

public class E : VisualCommanderExt.IExtension
{
    private EnvDTE80.DTE2 DTE;
    private EnvDTE.WindowEvents windowEvents;

    public void SetSite(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) {
        this.DTE = DTE;
        DTE.Events.WindowEvents.WindowActivated += OnWindowActivated;   
    }

    public void Close() {
        // i read somewhere this has to be done on close. 
        // but it gives gives me error on every IDE close. so i commented it .
        //DTE.Events.WindowEvents.WindowActivated -= OnWindowActivated;
    }

    private void OnWindowActivated(Window gotFocus, Window lostFocus) {
            HidePropertiesWindowInCodeOrTextView(gotFocus );
    }

    public void HidePropertiesWindowInCodeOrTextView(Window gotFocus ) {
           if (gotFocus.Document == null) return;
              var pwin = DTE.Windows.Item(Constants.vsWindowKindProperties);
              pwin.AutoHides  = !gotFocus.Caption.EndsWith(" [Design]") ;
    }
}

Ответ 3

Вместо того, чтобы отказаться от пространства в правой части экрана, я перетащил свои свойства и панели инструментов в левый кадр, на котором размещены проводник решений и класс, и т.д. Я бы предпочел, с одной стороны экрана, чем для окружения кода. Если вам нужны они оба, вы можете поместить панель инструментов в панель проводника решений, а затем соединить панель свойств под браузером решений, которая всегда сохраняет несколько свойств в поле зрения вместе с панелью инструментов.

Я знаю, что это не совсем тот ответ, который вы искали, но это другой способ сохранить эту экранную недвижимость, доступную для кода, не путаясь с авто-скрыть (я считаю, что авто-скрыть действительно раздражает больше, чем помощь.)

Ответ 4

Если вы нажмете значок "pin" на этих окнах инструментов, вы можете переключать, будут ли окна оставаться открытыми все время или только когда мышь находится рядом с ними. Конечно, иногда моя мышь уклоняется в этом направлении, и они выскакивают, когда я их не хочу, но такая жизнь...