Скрыть панель свойств / панели инструментов, когда нет в представлении ресурсов? - PullRequest
14 голосов
/ 16 июля 2009

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

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

Ответы [ 4 ]

4 голосов
/ 07 февраля 2011

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

Это относится к файлу класса EnvironmentEvents в VSE Macro IDE после предварительно сгенерированного содержимого.

<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 голосов
/ 29 сентября 2017

для vs2015:

  1. Меню> Инструменты> Расширения и обновления
  2. установить "Visual Commander". (Теперь у вас есть новое меню под названием "VCmd")
  3. Меню> "VCmd"> Расширения ... (справа появится панель расширений)
  4. Нажмите кнопку Добавить на панели расширений. (Откроется новая вкладка Window.)
  5. написать имя для расширения.
  6. выберите язык C #.
  7. вставьте код ниже:
  8. Нажмите Сохранить. Затем нажмите Compile. Затем нажмите Установить

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]") ;
    }
}
0 голосов
/ 18 июля 2009

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

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

0 голосов
/ 16 июля 2009

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

...