如何从命令Visual Studio Extension 2017获取IWpfTextView

谭阮

我需要使用TextViewAdornment显示弹出窗口,这需要IWpfTextView。有旧的代码:

private IWpfTextView GetWpfTextView(IVsTextView vTextView)
{
   IWpfTextView view = null;
   IVsUserData userData = vTextView as IVsUserData;

   if (null != userData)
   {
      IWpfTextViewHost viewHost;
      object holder;
      Guid guidViewHost = DefGuidList.guidIWpfTextViewHost;
      userData.GetData(ref guidViewHost, out holder);
      viewHost = (IWpfTextViewHost)holder;
      view = viewHost.TextView;
   }
   return view;
}

但是当转到Visual Studio 2017扩展名DefGuidList.guidIWpfTextViewHost时丢失。所以我不能再获得IWpfTextView了。

请帮我。谢谢大家。

谭阮

在谢尔盖·弗拉索夫(Sergey Vlasov)回答之后,我找到了一个解决方案:

private IWpfTextView GetWpfView()
{
        var textManager = (IVsTextManager)ServiceProvider.GetService(typeof(SVsTextManager));
        var componentModel = (IComponentModel)this.ServiceProvider.GetService(typeof(SComponentModel));
        var editor = componentModel.GetService<IVsEditorAdaptersFactoryService>();

        textManager.GetActiveView(1, null, out IVsTextView textViewCurrent);
        return editor.GetWpfTextView(textViewCurrent);
}

您必须通过添加参考->装配体->扩展名添加一些参考手册。然后选择:

 Microsoft.VisualStudio.ComponentModelHost 
 Microsoft.VisualStudio.Editor

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从命令行获取Visual Studio Intellisense错误

如何使用Ensime Extension在Visual Studio Code上获取Scala?

从命令行在2017 Visual Studio中构建项目?

如何从命令行运行Visual Studio代码?

如何从命令行编译Visual Studio项目?

如何从命令行安装Visual Studio Gallery扩展

如何从命令行安装Visual Studio Code扩展

Microsoft Reporting Services将Visual Studio 2017 Extension 2.0降级到1.24

如何使用命令行更新Visual Studio 2017?

Visual Studio Extension引发的调试异常

Visual Studio Extension中的app.config?

如何在Visual Studio 2017中获取Spy ++?

如何在Visual Studio 2017/2019中获取终端窗口?

如何获取Visual Studio 2017的当前主题

如何设置Visual Studio Code Python Extension的根目录?

如何为Visual Studio Extension的窗口添加按钮?

如何从命令行为Visual Studio创建简单的构建脚本?

如何从命令提示符下打开Visual Studio解决方案文件

如何从命令提示窗口构建和编译Visual Studio C ++代码

如何从命令行在Visual Studio中构建Xamarin DLL?

Visual Studio 2017中的Nuget Pack命令

从命令行禁用Visual Studio扩展

Visual Studio Extension不再打开VS的实验实例

Visual Studio Extension中的WPF模态窗口阻止输入

Visual Studio Extension用于对字段分配进行排序

Visual Studio 2017崩溃

获取Visual Studio生成的生成命令

如何在启用命令行的情况下下载完整的Visual Studio 2017社区?

如何为Visual Studio 2017安装TFS命令行工具

TOP 榜单

热门标签

归档