- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用Delphi XE3。当使用自 Delphi XE2 以来可用的自定义样式(例如 Carbon)时,将鼠标移到 TComboBoxEx 控件的边框上(MouseExit/Enter)时,会出现明显的白色闪烁。
重现步骤:创建一个新的 VCL Forms 应用程序,将 TComboBoxEx 放在表单上,选择例如项目选项中的 Carbon --> Application\Appearance 并启动应用程序
这是一个已知的问题/错误吗?是否有已知的解决方案?
谢谢
最佳答案
此边框闪烁问题不是使用 Delphi VCL 样式的产物。
(不使用VCL样式也可以观察到同样的问题)
罪魁祸首是 Desktop Window Manager这是
Windows 视觉样式和主题的重要组成部分。
您之所以会看到此问题,而其他人可能不会,是因为您在某个时候更改了默认 Windows 主题(aero 主题),或者您更改了所选主题的特定视觉效果属性。
您可能还有意或无意地禁用了桌面窗口管理器,因为它作为 Windows 服务运行。
更准确地说,如果您启用桌面合成功能,该问题就可以解决。
此功能仅在 Aero 主题中可用(默认),但在 Basic 或 Classic 中不可用,但有时它可能会出现即使不可用也可用。
控制面板 --> 系统 --> 高级系统设置 --> 高级 --> 性能设置 --> 视觉效果
When desktop composition is enabled, individual windows no longer draw directly to the screen or primary display device as they did in previous versions of Windows. Instead, their drawing is redirected to off-screen surfaces in video memory, which are then rendered into a desktop image and presented on the display.
正如您可能已经猜到的,此函数的功能基本上是充当缓冲区
,它以一种非常简洁的方式解释了关闭此选项时边框闪烁的原因。
只有当您当前的主题是 Aero 主题并使用 Windows Visual Styles 时,才能启用桌面合成功能。 .(默认情况下为每个 Aero 主题启用)
Aero 主题中默认启用视觉样式,您可以通过确保在性能设置中启用在 Windows 上使用视觉样式
功能来检查它是否已启用。当经典或基本主题生效时,桌面合成功能永远不会发挥作用,也无法启用。 (自 Windows 8 起经典主题已被弃用)
有时在 Windows 7 中,即使使用基本或经典主题,桌面合成功能也会在性能选项中显示出来,但不要被愚弄,这是一个内部错误。
重现此错误的步骤:
但是如果我取消选中在 Windows 上使用视觉样式
复选框,会发生什么情况?为什么这可以解决闪烁问题?
这将导致桌面窗口管理器 (DWM) 禁用所有 Windows 控件的主题。这意味着将使用较旧的渲染样式来绘制控件,而不是使用较新的 Aero 渲染样式。
您可以使用以下方法关闭单个控件的视觉样式,而无需全局关闭它SetWindowTheme(Handle, nil, nil)
这也是禁用视觉样式时解决 TComboBoxEx 边框闪烁问题的原因。还值得一提的是,自 Windows 8 以来,您无法再禁用视觉样式,因为正如我所说,经典主题已被弃用。
<小时/>关于解决方案,我认为您确实没有太多选择。考虑到用户在修改 Windows 主题的视觉效果方面有多大的自由度,这种事情必然会发生。至少您可以确定这个问题不会发生在默认的 Windows 主题上。
关于delphi - 具有 VCL 样式的 TComboBoxEx : Borders flicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17525994/
我最近从 Xcode 4.3 升级到 4.4,我正要沮丧地砸我的屏幕。 我遇到的问题是代码完成。当我输入一个变量或方法名称时,完成窗口会弹出它应该有的建议。但是,如果我尝试使用光标键在建议之间滚动,建
我在使用 jQuery 图像旋转器时遇到了一些问题。当快速单击下一个/上一个按钮两次时,图像会闪烁,您最终会看到两个图像。关于如何修复它有什么想法吗? 这是 HTML CSS
我已尽最大努力成为 Javascript/Ajax 技术的纯粹主义者,确保所有 Ajax-y 行为都是对基本功能的增强,而当禁用 Javascript 时,网站也能正常运行。但是,这会导致一些问题。
我的 Gatbsy 网站的页面加载时,未设置样式的内容“闪烁”。在此处查看当前部署预览可能最有帮助 https://happy-mahavira-5cd669.netlify.com/ . 到目前为止
背景:我们有一个嵌入式系统,可使用 10 位模数转换器将线性位置(0 毫米 - 40 毫米)从电位器电压转换为其数字值。 ------------------------ 0mm |
我尝试为伪元素宽度 css3 设置动画。一切都好。但在 Firefox (43.0.3) 上,动画结束时字体会闪烁: div { width:500px; height:500px; co
[已解决]:应用适当的列表迭代过程修复了问题。 (如下图) 我目前有一个程序,如果满足特定条件,列表中的元素将被迭代并删除。由于程序的性质,这可以直观地看到。 屏幕上正在迭代的对象有时会闪烁。这通常发
我有一个进度条,我想在用户单击某项时更新它。所以可以通过进度条来回前进。 目前,该栏似乎可以正常工作,但是该栏在闪烁,好像每秒都在加载该栏。例如,用户处于 70%,因此该条将填充到那里,然后清除,然后
我将 GridView 与图像项一起使用,通过 android DataBinding 技术 加载图像。如果向列表中添加一些新项目并通知适配器,那么 GridView 会闪烁,为什么会出现这种情况?如
我正在使用 KO 构建 SPA(单页应用程序)。该应用程序看起来像一本书,用户可以翻页。 问题是每次加载页面时,页面都会有短暂的“闪烁”,用户看到的是页面的无样式版本。我猜这是由于很多样式都依赖于 k
问题 如交互式 BaseTable API Playground 所示 here ,当我开始滚动时,跨行会闪烁开/关。 这是库中的一个已知错误,并且已经发布了很多关于它的问题: https://git
例如:我有一个 TFrame(称为 TPageFrame),它有许多控件,例如TreeView 左对齐、拆分器和由编辑和 RichEdit 组成的主客户区域,如下图所示: 代码看起来像这样: type
我正在尝试在 F# 中实现双缓冲。我遇到的所有示例都是 C#。 let r = form.DisplayRectangle let buffer = new Bitmap(r.Widt
我正在使用 grid 设计一个交互式绘图R 中的包。作为交互性的一部分,我反复删除并重新创建绘图的各个部分。但是,网格元素的总数(使用 grid.ls() 命令获得)保持不变;我创建的所有内容之前都已
场景如下:我有一些信息要显示在 ListView 上。每行都可以有标题、正文、日期、头像和更多数据。还有一个来自网络的 ImageView。 ImageView 的每一行都有不同的高度。我知道下载后它
我正在尝试制作数字时钟。它的问题之一是显示器会“闪烁”。换句话说,wx.StaticText 小部件(在本例中为 self.ST)将在很短的时间内变为空白。我相信原因可能在于 self.ST 更新的方
我似乎在使用在 Firefox(以及 iOS)中设置了“位置”的背景图像时遇到了问题。 在 iOS 上,当您滚动时图像会消失一秒钟,然后再回来。在 Firefox 上,它们只会在我使用 .animat
标题听起来有点乱,但我不想写得太长,所以请耐心阅读...... 我正在编写一个非常简单的 OpenGL 演示,它将图像加载为纹理,然后在屏幕上无限地水平滚动图像。以下是我如何加载纹理并渲染单帧: vo
我遇到了此处描述的相同问题:same problem ( fiddle :original fiddle)但我还不了解 JS,我在编写代码时正在学习,所以当我的 html 代码与现在有点不同时,我不知
您好 stackoverflow 社区... 我已将多个 (JavaFX) Menu 实例放入一个菜单中(位于 GluonMobile-View 的子节点中): 问题是,当类(class)器悬停其中一
我是一名优秀的程序员,十分优秀!