美文网首页
四.如何新建一个Visual Studio ToolBox

四.如何新建一个Visual Studio ToolBox

作者: dududuwei | 来源:发表于2020-01-09 21:47 被阅读0次

    四.如何新建一个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
    <local:BaseDialogWindow x:Class="DuSolidWorksTools.View.ReferenceManagerView"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 xmlns:local="clr-namespace:DuSolidWorksTools.View"
                              xmlns:vsshell="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.15.0"
                   Background="{DynamicResource {x:Static vsshell:VsBrushes.WindowKey}}"
                Foreground="{DynamicResource {x:Static vsshell:VsBrushes.WindowTextKey}}"
                 xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
            xmlns:wpfTool="http://schemas.xceed.com/wpf/xaml/toolkit"
        xmlns:res ="clr-namespace:DuSolidWorksTools.Resources"
               Title="{x:Static res:Lang.RefManager_Title}"  mc:Ignorable="d" MinHeight="500" MinWidth="800"
                 >
            <Grid>
            </Grid>
    </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

          本文链接:https://www.haomeiwen.com/subject/rteuactx.html