【问题标题】:How can I set the caption on an editor window in Visual Studio如何在 Visual Studio 的编辑器窗口中设置标题
【发布时间】:2020-01-14 20:24:38
【问题描述】:

我在 Visual Studio 扩展 AnkhSVN2019 中使用编辑器窗口上的自定义边距实现了一个注释功能。

在当前版本中,编辑器窗口上的选项卡仅包含文件名,看起来与普通编辑器窗口相同。我想修改标题,例如添加“Annotated”一词。

我正在打开编辑器窗口

dte.ItemOperations.OpenFile

在margin factory中,得到接口IWpfTextViewHost。

如何修改标签中的标题?

【问题讨论】:

  • 我认为你可以使用dte.ActiveWindow.Caption。请参考ActiveWindow Property,当你打开编辑器窗口时,你可以使用activewindow捕捉它。
  • 不幸的是,这会导致 InvalidOperationException 并显示消息 “无法修改文档或主窗口的标题。”
  • 您好 可以在[Window.Caption 属性][1] 中为工具窗口设置 Caption 不知道如何实现编辑器窗口的自定义边距。您能否在您的项目中提供更具体的细节。我也尝试为编辑器窗口提供利润。 [1]:docs.microsoft.com/en-us/dotnet/api/…
  • 自定义边距位于编辑器窗口,而不是工具窗口。如果您正在寻找示例,我实现的自定义边距位于 Annotate subdirectory of the Anhh.UI project 中。我从GitDiffMargin project 得到了一些想法。如果您想在字形边距中添加一些东西,Microsoft 提供了一个很好的演练。您可以通过 Add/New Item -> C#/Extensibility/Editor -> Editor Margin 在 Visual Studio 中添加一个简单的边距。
  • 基于getDiffMargin,通过以下代码编辑标题,不使用Object dte,itemoperations。我找不到自定义编辑器窗口的方法。使用 SVsDifferenceService = Microsoft.VisualStudio.Shell.Interop.SVsDifferenceService; IVsDifferenceService 差异服务 = _serviceProvider.GetService(typeof(SVsDifferenceService)) as IVsDifferenceService; differenceService.OpenComparisonWindow2(leftFileMoniker, rightFileMoniker, caption, tooltip, leftLabel, rightLabel, inlineLabel, roles, (uint)grfDiffOptions);

标签: visual-studio-2019 visual-studio-extensions vsix vspackage


【解决方案1】:

您可以从 <VS installation>\Common7\IDE\Microsoft.VisualStudio.Shell.ViewManager.dll 实现自己的 Microsoft.VisualStudio.PlatformUI.Shell.ViewElementFactory 来覆盖标签外观,即根据需要显示标题。

查看VSTabPath 扩展代码以获得灵感。

【讨论】:

  • 谢谢。我已经设法编译了 VSTabPath 扩展并且它确实有效,所以我知道有解决问题的方法。我还没有完全弄清楚它是如何工作的,但我希望尽快理解它。
猜你喜欢
  • 2022-08-04
  • 2010-09-26
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
  • 2011-11-27
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
相关资源
最近更新 更多