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

2024-01-08

我需要使用 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从命令 Visual Studio Extension 2017 获取 IWpfTextView 的相关文章

  • Rx.NET 中是否有一个Subject 实现,其功能类似于BehaviourSubject,但仅在值发生更改时才发出?

    有没有Subject https learn microsoft com en us previous versions dotnet reactive extensions hh229699 v vs 103 Rx NET 中的实现在功能
  • RestSharp获取序列化输出

    我正在寻找一种方法来访问 AddBody 调用的序列化结果 我正在使用内置的 RestSharp 序列化器 例子 class Foo public string FooField void SendRecord var f new Foo
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 模板外部链接?谁能解释一下吗?

    模板名称具有链接 3 5 非成员函数模板可以有内部链接 任何其他模板名称应具有外部链接 从具有内部链接的模板生成的实体与在其他翻译单元中生成的所有实体不同 我知道使用关键字的外部链接 extern C EX extern C templat
  • 在 C 中使用枚举而不是 #defines 作为编译时常量是否合理?

    在 C 工作了一段时间后 我将回到 C 开发领域 我已经意识到 在不必要的时候应该避免使用宏 以便让编译器在编译时为您做更多的工作 因此 对于常量值 在 C 中我将使用静态 const 变量或 C 11 枚举类来实现良好的作用域 在 C 中
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • C++:为什么 numeric_limits 对它不知道的类型起作用?

    我创建了自己的类型 没有任何比较器 也没有专门化std numeric limits 尽管如此 由于某种原因 std numeric limits
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 在 Win32 控制台应用程序中设置光标位置

    如何在 Win32 控制台应用程序中设置光标位置 最好 我想避免制作句柄并使用 Windows 控制台功能 我花了整个早上沿着那条黑暗的小巷跑 它产生的问题比它解决的问题还要多 我似乎记得当我在大学时使用 stdio 做这件事相对简单 但我
  • 我可以使用 lambda 函数或 std::function 对象来代替函数指针吗?

    我有一个需要使用的库 它定义了以下内容 typedef void CallbackFunction const int i 并且有一个注册回调的函数 如下所示 void registerCallback CallbackFunction p

随机推荐

  • 无法使用 CSS 网格定位 HTML 图例标记

    问题 出于可访问性的原因 我有一个包含多个字段集和图例标签的表单 我希望图例标签位于输入字段下方 由于我使用 CSS Grid 作为字段集 因此使其工作 在 Firefox 上 的唯一方法是为图例标签提供绝对定位 在其他浏览器中 例如 Ch
  • C++ 中具有按位数据的结构[重复]

    这个问题在这里已经有答案了 可能的重复 将位域转换为 int https stackoverflow com questions 2468708 converting bit field to int 我正在开发一个应用程序 其中一部分处理
  • 如何转储来自 JVM 堆老年代的 Java 对象?

    有没有工具可以转储旧代 JVM 堆 换句话说 我如何判断一个对象是来自年轻代还是老年代 如果您运行 Oracle JDK 或 OpenJDK 则可以使用以下命令执行此操作热点可服务性代理 http openjdk java net grou
  • 为 pygame 中的平台添加碰撞检测

    我正在开发一款小型平台游戏 您可以在其中放置块来制作一个关卡 然后玩它 我有重力 跳跃和左右移动 但我不确定如何让玩家在向左或向右移动时与墙壁碰撞 我希望它的工作方式是这样的 if key K LEFT if not block to th
  • 使用 bootstrapvalidator AJAX SubmitHandler 不起作用

    我正在使用 Bootstrap 验证https github com nghuuphuoc bootstrapvalidator https github com nghuuphuoc bootstrapvalidator 我有一个问题 s
  • 使用 JavaScript 获取变量名称

    我想创建一个日志函数 可以在其中插入变量名称 如下所示 var a 123 b abc log a b 结果在 console log 中应该如下所示 a 123 b abc 获取变量的值没有问题 但是如何获取变量名称呢 该函数应该是通用的
  • 如何使 celery 任务从任务内部失败?

    在某些情况下 我想让芹菜任务从该任务中失败 我尝试了以下方法 from celery task import task from celery import states task def run simulation if some co
  • 如何在iOS项目中控制多个导航控制器

    我的项目的结构如下 最初 当用户注册或尝试登录时 初始导航控制器应该可以工作 并且在成功注册 登录后 用户应该被带到选项卡栏控制器的第一个选项卡 但我面临的问题是我在选项卡栏视图中看到了 2 个导航栏 有人可以指导我如何以正确的方式实现这一
  • Android 偏好,是否必须是唯一的?

    For my private static final String PREFS NAME mypref 每个应用程序的 PREFS NAME 都必须是唯一的吗 或者我可以一遍又一遍地使用同一个 每个应用程序的它必须是唯一的 不同的应用程序
  • 加载数据INFILE错误代码:13

    在我的远程 MySQL 中 当我尝试执行此查询时 我收到 MySQL 错误代码 13 Query LOAD DATA INFILE httpdocs testFile csv INTO TABLE table temp FIELDS TER
  • Google Drive API V3 - 推送通知

    从昨天早上开始 我就被谷歌驱动器 API 请求困住了 正如这里所解释的 https developers google com drive api v3 push https developers google com drive api
  • JPA 和泛型

    我想知道带有泛型的抽象类如何处理 JPA 我的意思是该字段需要什么样的注释 考虑这些 MappedSuperclass public abstract class AbstractMyClass
  • 如何在SICStus Prolog中模拟SWI-Prolog的atom_to_term(+Atom, -Term, -Bindings)?

    我正在使用 SICStus Prolog 编写 Dali 代理 我需要将原子转换为术语 但我无法使用atom to term内置于 SWI Prolog Use library codesio http sicstus sics se si
  • Ruby Mechanize、Nokogiri 和 Net::HTTP

    我使用 Net HTTP 进行 HTTP 请求并获取响应 uri URI http www example com http Net HTTP start uri host uri port proxy host proxy port re
  • 将整个 pandas multiIndex 数据框除以数据框变量

    我有一个如下形式的多索引数据框 如何将数据框中的所有值除以 df 三 one two three Number 1 2 3 1 2 3 1 2 3 Name grethe 0 299 1 444 0 920 1 378 0 376 0 39
  • 在groovy中读取Excel文件的最简单方法?

    是否有任何 warappers utils 可用于读取 Groovy 中的 Excel 文件 我正在寻找类似于 Groovy SQL 的东西rows功能如下面的 spock 测试示例所示 我的目的是用这个Spock 测试框架中使用 exce
  • 在 iOS 上签名的数据无法在 Java 中验证

    我有一些要在 iOS 上签名的数据SecKeyRawSign使用椭圆曲线私钥 但是 使用 Java 验证数据Signature verify 回报false 数据是一个随机的 64 位整数 像这样分成字节 uint64 t nonce so
  • python 3.6 multiprocessing.Pool() 使用 Windows 启动非常慢

    在 Windows 10 AMD Threadripper 16 核 CPU 64 GB RAM 快速 SSD 上运行 Python 3 6 4 64 位 在我开始此测试之前 没有其他任何东西正在运行 任何修复 解决方法 想法或解释将不胜感
  • Django 模板 - 将字符串拆分为数组

    我有一个模型字段 它存储 URL 列表 是的 我知道 这是错误的方式 作为url1 nurl2 nurl3 lt gt 我需要在模板中将字段拆分为数组 因此我创建了自定义过滤器 register filter name split def
  • 如何从命令 Visual Studio Extension 2017 获取 IWpfTextView

    我需要使用 TextViewAdornment 显示弹出窗口 它需要 IWpfTextView 有旧代码 private IWpfTextView GetWpfTextView IVsTextView vTextView IWpfTextV