Visual Studio - 在设计视图中显示属性窗口,但隐藏在代码视图中

时间:2013-03-30 15:39:52

标签: .net vb.net visual-studio

每个人在设计模式下都使用“属性”窗口。当我们切换到代码视图时,我们不需要属性窗口。

从设计视图输入代码视图时是否可以自动隐藏属性窗口?

1 个答案:

答案 0 :(得分:2)

for vs2015 :(也是vs2017)

  1. 菜单>工具>扩展和更新
  2. 安装“Visual Commander”。 (现在你有一个名为“VCmd”的新菜单)
  3. 菜单> “VCmd”>扩展......(你会在右边看到一个扩展窗格)
  4. 在“扩展程序”窗格中按“添加”按钮。 (新标签Wİndow将打开。)
  5. 为扩展名写一个名字。
  6. 选择语言为C#。
  7. 粘贴以下代码:
  8. 按保存。然后按编译。然后按安装
  9. edit2:代码适用于c#winforms + xamarin.android项目。

    using EnvDTE;
    using EnvDTE80;
    using System.Windows.Forms;
    using System;
    
    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() {
          // DTE.Events.WindowEvents.WindowActivated -= OnWindowActivated;
       }
    
       private void OnWindowActivated(Window gotFocus, Window lostFocus) {
          //project_details();
          HidePropertiesWindowInCodeOrTextView(gotFocus);
    
        }
    
       public void HidePropertiesWindowInCodeOrTextView(Window gotFocus) {
          //System.Windows.MessageBox.Show(  gotFocus.Document.Name +"" );
    
          if (gotFocus.Document == null) return;
          var pwin = DTE.Windows.Item(Constants.vsWindowKindProperties);
    
          if (isAndroidProject()) 
          {
            pwin.AutoHides = !gotFocus.Caption.EndsWith(".axml");
          }else
          {
            pwin.AutoHides = !gotFocus.Caption.EndsWith(" [Design]");
          }
    
          //pwin.AutoHides = true;  // pwin.Activate();
       }
    
       public bool isAndroidProject() {
          if (DTE == null || DTE.ActiveWindow == null) return false;
          var cp = DTE.ActiveWindow.Project;
          var AndroidApp = System.IO.File.ReadAllText(cp.FullName).Contains("AndroidApplication");
          return AndroidApp;
       }
    
       // for debug , window,document names
       public void project_details() {
          try {
             if (DTE == null || DTE.ActiveWindow == null) return;
    
             var cp = DTE.ActiveWindow.Project;
             var ad = DTE.ActiveDocument; //Name Kind
             var av = DTE.ActiveWindow; // Caption Kind
             if (cp == null) return;
    
             var msgp = "aProj:" + (cp != null ? cp.FullName: "[no project for Window]") + "\r\n" 
             + "aDoc: " + ad.Name + ", " + ad.Kind + "\r\n" 
             + "aWin: " + av.Caption + ", " + av.Kind;
    
             MessageBox.Show(msgp, "ert4 -anbdapp" + isAndroidProject() );
    
          } catch(Exception ex) {
             MessageBox.Show(ex + "");
          }
    
       }
    
    
    
    
    }