问题标签 [aero]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1105 浏览

c# - WPF 中是否包含 Vista/Win7 航空效果?

我可以像 BlurEffect 一样在我的控件上使用该效果吗?如果它不可用,有没有办法“获取”它?也许通过反射器?

0 投票
1 回答
3029 浏览

wpf - 在 Windows 经典主题中更改禁用列表框的背景颜色

我正在开发一个必须使用 Windows 经典主题运行的 WPF 应用程序。应用程序创建一个包含 ListBox 的对话框。显示对话框时,必须禁用 1s 才能接受任何输入。我正在使用样式触发器来完成此操作,并且可以正常工作。但是,ListBox 在禁用时会显示白色背景,我似乎无法摆脱它。使用 aero 主题时,以下样式资源修复了该问题:

但是当使用 Windows 经典主题时,白色背景会重新出现。我该如何补救经典主题的情况???

0 投票
1 回答
752 浏览

c# - 自己的 C# 应用程序中的 Windows Aero 区域

我想知道有这么多新应用程序,我认为大多数内置 WPF,都有这个非常酷的 Windows Aero Glass 界面。

例如 Seesmic 或即将推出的 Firefox 3.7 (来源:crenk.comhttp://crenk.com/wp-content/uploads/2010/04/firefox3.7.jpg

大多数时候在互联网上搜索看起来你需要一个黑客来实现这一点。但说真的:我不认为大型软件开发团队使用黑客技术来推出他们庞大的二手产品。

所以我的问题是:Windows Aero 玻璃区域 - 怎么办?

只有黑客才有可能吗?

也许它只是一个属性,我不知道。我是 WinForms 开发人员,所以我从未测试过 WPF。但是我的谷歌搜索看起来并不像使用 WPF 更容易。

0 投票
2 回答
1772 浏览

windows-7 - .NET Framework 4.0 和 Aero Glass 问题

在我的应用程序中,我有一个表单,我通过使用 DWM API 的方法 DwmExtendFrameIntoClientArea 来扩展 Aero Glass 标题栏的高度,以便在 Aero 框架上绘制我的表单客户区的一部分。为了达到这种效果,我还在客户区域的“玻璃框架上方”部分绘制了一个黑色矩形,使其看起来透明,正如许多在线文章所建议的那样。这在 Windows Vista/Windows 7 下运行良好,但当我下载 VS 2010 并使用 .NET Framework 4.0 作为我的目标框架来构建我的应用程序时,这种方法不再有效。问题是黑色矩形是可见的,即在 Aero 玻璃上绘图时黑色不再被认为是透明的。有谁知道这可能有什么问题以及如何克服?

0 投票
4 回答
2272 浏览

windows - 我的 OpenGL 游戏关闭 Aero DWM Glass

几年前我写了一个免费游戏:http ://www.walkover.org 。对于大厅和菜单,它使用像 win32 这样的普通对话框。当实际游戏开始时,它使用 OpenGL。

现在,在 Windows 7 上,当实际游戏开始时,它会关闭 windows aero glass,并在游戏结束时将其重新打开。

我能做些什么来防止这种情况发生吗?一些特殊的标志可以让玻璃保持打开状态?(对于较新的,我一直在使用 DirectX,但这不会发生在那里。)也许我必须在某处指定一些(新)标志?

我正在使用这个像素格式描述符:

0 投票
2 回答
1202 浏览

c# - 调用 GDI 文本函数后如何修复 alpha 值?

我有一个使用 Aero 玻璃效果的应用程序,因此除了红色、绿色和蓝色值之外,每个像素都有一个 alpha 值。我有一个具有纯白色背景(alpha = 255)的自定义绘制控件。我想使用 GDI 文本函数在控件上绘制纯文本。但是,这些函数将 alpha 值设置为任意值,导致文本半透明地显示我的应用程序下方的任何窗口。

在调用渲染文本之后,我想遍历控件中的所有像素并将它们的 alpha 值设置回 255。最好的方法是什么?

BitBlt我对,GetPixelSetPixel函数没有任何运气。他们似乎没有注意到 alpha 值。

以下是我考虑并拒绝的其他解决方案:

  • 绘制到位图,然后将位图复制到设备:使用这种方法,文本呈现不会利用监视器的特性(例如,ClearText)。如果您知道一种让 GDI 将文本呈现到位图的方法,就像它呈现到屏幕上一样,那也可以解决我的问题。
  • 使用 GDI+ 进行文本渲染:这个应用程序最初使用 GDI+ 进行文本渲染(在我开始从事 Aero 支持工作之前)。由于在尝试使用 GDI+ 准确测量字符串时遇到困难,我转而使用 GDI。我宁愿不换回来。
  • 设置 Aero 区域以避免有问题的控件:我的应用程序的窗口实际上是在不同进程中运行的不同应用程序的子窗口。我无法直接控制顶级窗口中的 Aero 设置。

该应用程序是使用 Windows 窗体用 C# 编写的,尽管我不喜欢使用 Interop 调用 Win32 API 函数。

0 投票
1 回答
1559 浏览

c# - Smooth Text On Glass

I have seen many other samples out there that draw smooth text on glass. But I can't use them. I need every single label that gets added at runtime to be smooth. I can't just "draw" text onto the screen.

Is this at all possible, and are there and sources around?

Thank you

0 投票
1 回答
391 浏览

c# - 更改 Windows Vista/7 的透明色

好的,所以我听说微软决定用于透明的颜色是黑色。这可以解释为什么黑色文本在绘制/放置到玻璃表面时是不可见的。

将透明度颜色(黑色)改回洋红色对我们来说不是很有意义吗?他们为什么不再这样做了?甚至可以改变这种颜色吗?

0 投票
1 回答
2686 浏览

delphi - Delphi 7 应用程序中 Aero Glass 的问题

我正在尝试重新制作一些旧项目以支持 Aero Glass。虽然启用玻璃框架有点容易,但我遇到了一些主要问题。我使用了这段代码:

所以我现在得到了漂亮的玻璃窗。由于黑色现在是透明颜色(有点愚蠢的选择,为什么不能是粉红色)任何是 clBlack 的东西也会变得透明。这意味着所有标签、编辑、按钮文本……即使我在设计时将文本设置为其他颜色,DWM 仍然使它们具有那种颜色和透明性。

好吧,我的问题是 - 是否有可能以某种方式解决这个问题?

0 投票
2 回答
3862 浏览

c++ - Aero Snap 不适用于我的应用程序

我遇到了 Aero Snap 无法与我正在使用的应用程序(Windows 桌面、本机 C++ 应用程序)一起工作的问题,而且我对正在发生的事情有点困惑,因为它似乎应该可以正常工作,超出盒子。

我在一个最小的 win32 应用程序上使用了 Spy++,当我按下 Win-Left 时收到以下消息:

<00070> 00030D1C P WM_KEYDOWN nVirtKey:VK_LWIN cRepeat:1 ScanCode:5B fRepeat:0 fUp:0 <00071> 00030D1C P WM_KEYDOWN nVirtKey:VK_LWIN cRepeat:1 ScanCode:5B fRepeat:1 fUp:0 <00072> 00030D1C P WM_KEYDOWN nVirt VK_LWIN cRepeat:1 ScanCode:5B fRepeat:1 fUp:0 <00088> 00030D1C S WM_GETMINMAXINFO lpmmi:0043FCBC
<00089> 00030D1C R WM_GETMINMAXINFO lpmmi:0043FCBC
<00090> 00030D1C S WM_WINDOWPOSCHANGING lpwp:0043FCC4
<00091> 00030D1C S WM_GETMINMAXINFO lpmmi:0043F8E8
< 00092> 00030D1C R WM_GETMINMAXINFO lpmmi:0043F8E8
<00093> 00030D1C R WM_WINDOWPOSCHANGING
.. 等等

所以我可以看到左键的 WM_KEYDOWN 没有到达应用程序,但是我得到了 aero snap “resize window” 的东西。

当我 Spy++ 我的应用程序时,我可以看到左键没有被“拦截”,而是被传递给应用程序,所以我没有得到任何捕捉好处。

<00043> 000F0F12 P WM_KEYDOWN nVirtKey:VK_LWIN cRepeat:1 ScanCode:5B fRepeat:0 fUp:0
<00044> 000F0F12 P WM_KEYDOWN nVirtKey:VK_LWIN cRepeat:1 ScanCode:5B fRepeat:1 fUp:0
<00045> 000F0F12 P WM_KEYDOWN nVirt VK_LWIN cRepeat:1 ScanCode:5B fRepeat:1 fUp:0
<00060> 000F0F12 P WM_KEYUP nVirtKey:VK_LEFT cRepeat:1 ScanCode:4B fRepeat:0 fUp:1

我将深入研究消息处理的核心,看看发生了什么,但我会采用我能得到的所有提示:)

编辑我注意到 Win-Up 和 Win-Shift-Left/Right 实际上可以正常工作,所以只是 Win-Down 和 Win-Left/Right 没有被“气动”到正确的位置/大小。

编辑好吧,问题似乎是我的窗口不是用 WS_THICKFRAME 标志创建的。如果我添加标志,snap 工作。现在,我实际上并不想要那里的边界,但至少我知道是什么导致了奇怪的行为..

希望最后的编辑摆脱边框就像响应 WM_NCCALCSIZE 一样简单,并使客户端占据整个窗口。