四.如何新建一个Visual Studio ToolBox

  • 一.为SolidWorks开发一个Visual Studio扩展

  • 二.实现右击查看Api Help

  • 三.使用Roslyn分析代码

  • 四.如何新建一个Visual Studio ToolBox

  • 五.获取注册表中的SolidWorks信息

  • 六.实现SolidWorks Api的Quick Info

  • 七.实现SolidWorks Api 的 Signature 签名帮助

  • 八.为扩展添加模板

  • [九.发布Visual Studio 扩展]

  • 源码地址-Github

四.如何新建一个Visual Studio ToolBox

4.1 添加一个ToolBox

  •  我们要实现的是一个Visual Studio工具窗口,如下所示。


    AddinViewer.png
  • 在解决方案管理器中的VSIX项目右击,添加 => 新建项 => Extensibility => Async Tool Window
SolidWorksToolBox.png

4.2 添加视图

  • 添加完成后我们获得了如下代码文件
ToolWindowFile.png

SolidWorksToolBox.cs 负责承载一个WPF用户控件;
SolidWorksToolBoxCommand 负责响应用户命令;
和ApiHelpCommand一样,我们再DuSolidWorksToolsPackage.cs中的InitializeAsync方法中可以看到SolidWorksToolBoxCommand被初始化

await SolidWorksToolBoxCommand.InitializeAsync(this);
  • 还有一个xaml的用户控件
XamlFile.png

这个用户控件便是我们新建的ToolBox的界面,此项目使用了MVVM.light控件来实现MVVM模式.为了实现第一节描述的功能,我建立了如下的目录结构

MVVM.png

具体的实现可以访问我们的项目去查看.

4.3 实现Visual Studio 弹出式窗口

虽然可以新建一个WPF项目,使用一个Window类型的窗口来实现弹出.但推荐使用BaseDialogWindow来托管一个用户控件来实现弹出窗口.

  • 1.新建一个名为BaseDialog的类
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.PlatformUI;

namespace DuSolidWorksTools.View
{
    public class BaseDialogWindow  : DialogWindow
    {
        private IVsUIShell shell;
        public BaseDialogWindow()
        {
            this.HasMaximizeButton = true;
            this.HasMinimizeButton = true;
        }
    }
}
  • 2.新建一个用户控件,将用户控件的更改为Local:BaseDialogWindow

        
        

将 *.xaml.cs 中继承UserControl的类更改为继承BaseDialogWindow

 public partial class ReferenceManagerView : BaseDialogWindow
 {
        public ReferenceManagerView()
        {
            InitializeComponent();
        }
 }

这样的我们就可以获得一个点击按钮然后弹出的窗口,并且使用弹出窗口的ShowModal()方法后,在窗口弹出时操作Visual Studio可以获取VS任务栏的红色禁止提醒和窗口抖动提醒.

DuSolidWorksTools.View.ReferenceManagerView referenceManager = new DuSolidWorksTools.View.ReferenceManagerView();
referenceManager.ShowModal();

--

PopUpWindow.png

你可能感兴趣的:(四.如何新建一个Visual Studio ToolBox)