Visual Studio 2010 - 半透明浮动窗口

2024-04-11

是否可以在 Visual Studio 2010 中使浮动窗口半透明?我希望能够浮动编辑器窗口并降低其 Alpha 级别。可以使用修改股票编辑器窗口的扩展来创建此功能吗?

如果不是扩展,是否有合适的第三方应用程序能够修改 Visual Studio 2010 中特定子窗口的属性?


主要问题是,它取决于工具窗口,因为 Visual Studio 对于工具窗口的实际呈现方式没有太多要求。

如果工具窗口有 HNWD 可供使用,您可以使用设置LayeredWindow属性 http://msdn.microsoft.com/en-us/library/ms633540%28v=vs.85%29.aspx功能。如果工具窗口是WPF,则可以使用其他技巧。

现在,问题是要掌握一些有用的东西...只需在 Visual Studio 2010 上启动 SPY++,您就会发现周围没有太多可见的 HWND。有些包使用非托管代码,有些包使用.NET + Winforms,最近的包越来越多地使用.NET + WPF。

UISpy http://msdn.microsoft.com/en-us/library/ms727247.aspx(另一个间谍工具,但基于用户界面自动化 http://en.wikipedia.org/wiki/Microsoft_UI_Automation)可以看到所有工具窗口,但不显示任何 Native WIndow Handle(UI 自动化可以读取的标准属性之一),这不是好消息。

Visual Studio 使用 IVsWindowPane 接口,特别是创建窗格窗口 http://msdn.microsoft.com/en-US/library/microsoft.visualstudio.shell.interop.ivswindowpane.createpanewindow%28v=VS.80%29.aspx方法来创建主机窗口,但没有任何官方可以获取任何 HWND 句柄来使用。

唔!如果您有想要调整的特定工具窗口,我们可以进行更深入的研究,但我认为编写 100% 通用工具很困难。

EDIT: 我又进一步搜索了。以下代码枚举当前 Visual Studio 实例的所有窗口框架(停靠或浮动):

// WindowFrame needs Microsoft.VisualStudio.Platform.WindowManagement.dll
public static IEnumerable<WindowFrame> EnumWindowFrames(Microsoft.VisualStudio.OLE.Interop.IServiceProvider sp, __WindowFrameTypeFlags frameTypes)
{
    if (sp == null)
        throw new ArgumentNullException("sp");

    ServiceProvider serviceProvider = new ServiceProvider(sp);
    IVsUIShell4 shell = (IVsUIShell4)serviceProvider.GetService(typeof(SVsUIShell)); // VS 2010 only

    IEnumWindowFrames framesEnum;
    IVsWindowFrame[] frames = new IVsWindowFrame[1];
    uint numFrames;
    shell.GetWindowEnum((uint)frameTypes, out framesEnum);
    if (framesEnum == null)
        yield break;

    while ((framesEnum.Next(1, frames, out numFrames) == VSConstants.S_OK) && (numFrames == 1))
    {
        WindowFrame frame = frames[0] as WindowFrame;
        if (frame != null)
            yield return frame;
    }
}

这将给出 WindowFrame 实例的列表。 WindowFrame 没有文档记录,但它是公共的(位于 Microsoft.VisualStudio.Platform.WindowManagement.dll 中),因此您可以使用它。每个 WindowFrame 实例都有一个 FrameView 属性,该属性具有一个 Content 属性。根据我的发现,此 Content 属性在大多数情况下是 WPF 的 Panel 元素。该面板下方的层次结构将取决于窗口的实际实现方式。

如果它是非托管或 Winform(例如 .SQL 编辑器),则面板的子集合中将有一个 HwndHost。我尝试玩它(使用设置LayeredWindow属性 http://msdn.microsoft.com/en-us/library/ms633540%28v=vs.85%29.aspx),但似乎不起作用......

如果它是一个 WPF(例如,全新的 C#/VB 编辑器),将会有一个巨大的 WPF 层次结构,最终会下降到一个IWfp文本视图 http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.editor.iwpftextview.aspx执行。您可以在此层次结构中更改许多内容,有些内容可以工作(例如背景属性),但是...关于透明度,我认为这是不可能的,因为根窗口不允许这样做(它有允许透明度 http://msdn.microsoft.com/en-us/library/system.windows.window.allowstransparency.aspx设置为false,一旦显示就无法更改)。例如,设置 Opacity = 0.5 是可行的,但由于没有透明度,效果只是使窗口变暗......

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

Visual Studio 2010 - 半透明浮动窗口 的相关文章

  • C#.NET VS2010 断点不起作用

    当我去调试代码时 所有断点都被透明填充 只留下轮廓 并且中间有一个感叹号的小三角形位于断点的角落 当我将鼠标悬停在断点上时 错误是 当前不会命中断点 源代码与原始版本不同 我在一个多小时内没有尝试调试我的代码 在此期间我添加了一个具有多个线
  • C++ 致命错误 LNK1120:1 个未解析的外部

    是什么导致了这个错误 我用谷歌搜索了它 我发现的前几个解决方案是库和主函数出了问题 但在我的问题中似乎都很好 我什至重新输入了两者 可能是什么原因造成的 这可能会有所帮助 MSVCRTD lib crtexew obj 错误 LNK2019
  • __declspec(align) 用于多个声明

    抱歉 这个非常简单的问题 无法在谷歌上找到答案 这个声明语法是 declspec align 16 float rF 4 declspec align 16 float gF 4 declspec align 16 float bF 4 相
  • Visual Studio 2010 在程序结束后退出

    我正在通过编译 C 程序来尝试 Visual Studio 2010 在 DOS 命令窗口中显示解决方案后 该窗口立即关闭 在 Visual Studio 2008 中 用户会收到按任意键继续的消息 并按任意键关闭命令提示符窗口 我如何在
  • 为什么某些 Web.config 转换标记化为 SetParameters.xml,而其他则不然?

    我最近在 VS2010 中使用配置转换相当多 但我很困惑为什么有些转换直接应用于包中的 Web config 而其他转换则针对 SetParameters xml 中的令牌存储 然后在发布时应用 例如 采用具有以下连接字符串和应用程序设置的
  • 了解 std::swap()。 tr1::_Remove_reference 的目的是什么?

    在 VS10 的 STL 实现中 有以下 std swap 变体的代码 TEMPLATE FUNCTION Move template
  • 在 python 的 Visual Studio 工具中按下 ctrl+F5 后,控制台窗口立即关闭

    我已经安装了 Visual Studio 的 Python 工具 但在控制台窗口中看不到输出 就像我在 Visual Studio 中运行 C 控制台应用程序时按以下快捷键时看到的输出一样 F5 开始调试程序并关闭 C 和 Python 中
  • 如何进行Visual Studio格式字典初始化?

    所有 Visual Studio 也包括 2012 不格式化以下内容 messageProcessor new Dictionary
  • 在 Visual Studio 2010 中标准化行结尾

    我们有多个开发人员在开发一个应用程序 似乎每当一个特定的人在处理一个文件时 其他人在处理该文件时 他们都会得到 以下文件中的行结尾不一致 你想要 标准化行结尾 Visual Studio 中是否有一些选项可供开发人员更改 这样我们就不会一直
  • 如何在单元测试中比较列表

    这个测试怎么会失败呢 TestMethod public void Get Code var expected new List
  • 多个 Visual Studio 项目抱怨临时文件丢失,因此无法打开。错误代码 &H80070003

    我在终端服务器上运行 Visual Studio 2010 并且已经运行了一段时间 问题相对较少 今天早上 我启动了我的电脑 在英国的长周末期间 似乎出现了以下问题 我有很多项目 但不是我的所有项目 也不是给定解决方案中的所有项目 抱怨无法
  • 在没有 IIS 的计算机中打开设置为 IIS 目录的 Web 项目,指向嵌入式服务器

    我可以在TFS中打开一个Web项目 但是 在我的 QA 环境中 我必须将其更改为使用 IIS 在我的本地开发环境中 我没有IIS 无法安装它 新的公司规则拒绝我进行 QA 访问 并且我无法打开我的 Web 项目来在我的计算机中修复它 当我打
  • 在 Visual Studio 中调试非托管 C++ 图像

    我确实在 Visual Studio 2010 下的非托管 C 上编写了大量图像处理代码 其中涉及许多不同的图像 我希望能够在逐步调试时像简单标识符一样轻松地观看它们 我当前的解决方案是使用一些在 Matlab 控制台中导出图像的函数 可以
  • Visual Studio 2010 可扩展性、MPF 和语言服务

    我正在尝试扩展 Visual Studio 2010 RC 以能够使用自定义编程语言 我尝试做的前两件事是语法突出显示 智能感知功能 很容易完成 感谢 PDC09 中的 Ook 示例 和创建新项目模板的可能性 即能够打开 myproj 文件
  • Visual Studio 2010 调试器不会在断点处停止?

    我在计算机 Windows 7 64 位 上使用 Visual Studio 2010 时遇到问题 我正在为 Outlook 做一个 C 插件 我可以将其添加到 Outlook 上 尝试一下 但无法调试它 因为调试器不会在断点处停止 我在谷
  • Visual Studio 有格式代码快捷方式吗?

    In Eclipse http en wikipedia org wiki Eclipse 28software 29 there is a shortcut Ctrl Shift F that re indents code and fi
  • 如何为动态创建的按钮创建 onClick 事件处理程序

    目前 我正在为学生宿舍做一个项目 现在我必须实现一些关于学生的搜索策略 这里 当用户单击 aspx 页面中的另一个服务器按钮时 我必须动态创建一个按钮 因此我必须创建新创建的按钮的 onclick 事件处理程序 我使用的代码片段是 prot
  • 警告 C4819:如何查找必须保存在 unicode 中的字符?

    我最近通过 VS2010 看到了以下警告 警告 21 警告 C4819 文件包含当前代码页无法表示的字符 936 以 Unicode 格式保存文件以防止数据丢失 c boost vs2010 boost1 49 include boost
  • 在 VB 2010 中禁用“默认实例”

    我已经开始在 VB 2010 中做一些基本的 win 表单工作 我真的很烦恼默认实例 https stackoverflow com q 4698538 794234特征 有没有办法可以完全禁用它并像普通类一样使用这些类 向表单的构造函数添
  • 仅在调试版本中防止 NuGet 恢复包

    我在解决方案中启用了 恢复包 选项 因此当我将代码上传到 CI 服务器时 它会更新正确构建所需的所有包 并且效果很好 现在的问题是 在我的本地计算机上 构建需要很长时间才能启动 因为正在 更新软件包 有没有办法仅在发布版本中启用恢复包 我尝

随机推荐

  • 如何在 Django 管理表单中添加自定义操作按钮并发布信息

    我是姜戈新手 我正在使用 Django 管理 我怎样才能制作一个新按钮 靠近保存 并发布信息并在 python 脚本中使用它 我正在使用 Django 版本 2 管理员 py admin site register Router admin
  • 找不到具有以下功能的代理:grunt

    当我尝试在本地 TFS 2015 Update 1 上对构建进行排队时 收到以下错误消息 找不到具有以下功能的代理 grunt 我已经安装了NodeJS and grunt cli他们在path 即它们可以从任何位置在 cmd 中执行 我缺
  • 无法调用未定义的方法“then”

    为什么我收到 无法调用未定义的方法 then http plnkr co edit yWS6hRjmZZeZMJyVA0zy p preview http plnkr co edit yWS6hRjmZZeZMJyVA0zy p previ
  • 如何禁用 d3 对数刻度中的小刻度?

    我的实时 d3 对数刻度图如下所示 我只想显示主要刻度及其标签 10 2 10 1 10 0 10 1 10 2 but 不是小蜱虫 我希望日志 Y 轴看起来像这样 没有小刻度 我怎样才能做到这一点 EDIT 发布一些代码 svg d3 s
  • ViewState 与 ASP.NET MVC 相关吗?

    我正在学习 ASP NET MVC ASP NET 的许多概念 如身份验证 授权 会话状态 仍然适用于它 但从我所了解的情况来看 我不认为 ViewState 在 ASP NET 应用程序中仍然相关 但它就在那里 System Web Mv
  • Codeigniter - cookie 在 Internet Explorer 8 中不起作用

    此代码适用于除 Internet Explorer 8 之外的所有浏览器 this gt input gt set cookie array name gt test cookie value gt hello from cookie ex
  • T-SQL 和 WHERE LIKE %Parameter% 子句

    我试图编写一个使用 WHERE LIKE text 子句的语句 但当我尝试使用文本参数时 我没有收到结果 例如 这有效 SELECT Employee WHERE LastName LIKE ning 这将返回用户 Flenning Man
  • Json.Encode 在 CS 文件中工作,但在 CSHTML 中不起作用

    在我的 CS 文件中 我正在执行以下命令 它按预期工作 using System Web Helpers String json System Web Helpers Json Encode null 但是 在我的 CSHTML 文件中 我
  • 使用 jQuery 重新绑定 DOM 事件

    这纯粹是一个理论问题 所以我不是在寻找替代解决方案 有没有办法让默认处理程序执行类似的操作 var defaultHandler test click test unbind click test bind click defaultHan
  • PDFBox 中的 load() 和 parse() 方法可能存在错误?

    我尝试使用PDFBox http pdfbox apache org 定期 pdf文件并且工作正常 但是当我遇到损坏的 pdf 代码会 冻结 不抛出错误或其他东西 简单地说load or parse函数需要永远执行 Here is 损坏的文
  • Qt LGPL 许可例外? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用Qt Mfc 迁移框架 http doc trolltech com solutions qtwinmigrate index
  • 通过 Jenkins 上的 Java Web Start 启动从属代理时出现问题

    我们最近将 Jenkins 升级到了最新版本 从那时起 我一直无法通过 Java Web Start 通过命令行启动从站 每次我尝试启动它时 都会收到 无法启动应用程序 错误 在详细信息面板中 CouldNotLoadArgumentExc
  • 没有可执行 jar 的 Spring Boot 2 Gradle 插件

    如何配置 Spring Boot Gradle 插件 2 以禁用 Gradle Script Kotlin 中的 Boot 分发 我想要的发行版是一个程序集捆绑包 zip 其中包含 lib 文件夹中的所有依赖项 和 jar 我已启用 Jar
  • Python 日志记录:为什么 __init__ 被调用两次?

    我正在尝试将 python 日志记录与配置文件和自己的处理程序一起使用 这在某种程度上是有效的 真正让我困惑的是 init 被叫两次并且 del 被调用一次 当我删除整个配置文件内容并直接在代码中创建处理程序时 init 被调用一次并且 d
  • mysql 小数和tinyint 乘法精度

    在 mysql 5 1 中 我有一个包含两列的表 create table t1 price decimal 6 2 quantity tinyint 4 在我正在做的选择查询中 select sum price quantity from
  • UglifyJS 属性修改

    根据文档 UglifyJS 可以修改除提供的保留列表中的属性名称之外的所有属性名称 是否可以用其他方式做到这一点 这样只有提供的列表上的属性才会被破坏 如果是这样 我需要传递哪些选项uglify minify files 实现您正在寻找的白
  • 批量格式化文件日期YYYYMMDD

    我一直在处理批处理文件中的一些代码 用于评估两个文件日期 如果一个日期大于另一个日期 则会运行另一个 bat 文件 我想要做的是将两个日期格式化为 YYYYMMDD 以便我可以使用GTR 比 更棒 代码如下 但如果我使用它就可以工作 equ
  • 描述时间序列 pandas 中的间隙

    我正在尝试编写一个函数 该函数采用连续的时间序列并返回一个数据结构 该数据结构描述数据中任何缺失的间隙 例如带有 开始 和 结束 列的 DF 对于时间序列来说 这似乎是一个相当常见的问题 但是尽管使用了 groupby diff 等 并进行
  • CSS 通过舷窗查看

    我正在尝试使用 CSS 创建一个 舷窗 当我说舷窗时 我的意思是使屏幕的一部分透明 这样您就可以看到舷窗后面的任何内容 仅此而已 我能够通过将主体的背景颜色设置为与前景色相同 然后使用具有圆形渐变的舷窗图像来获得我想要的效果 中间为白色 边
  • Visual Studio 2010 - 半透明浮动窗口

    是否可以在 Visual Studio 2010 中使浮动窗口半透明 我希望能够浮动编辑器窗口并降低其 Alpha 级别 可以使用修改股票编辑器窗口的扩展来创建此功能吗 如果不是扩展 是否有合适的第三方应用程序能够修改 Visual Stu