【问题标题】:Painting issues with TScaledLayout & custom stylesTScaledLayout 和自定义样式的绘画问题
【发布时间】:2016-02-05 10:03:22
【问题描述】:

在将 TScaledLayout 和从 fmx 中的位图样式设计器创建的自定义样式相结合时,我遇到了绘画问题。

为了演示,我加载了通过在位图样式设计器中选择“VCL / FMX 的新样式”->“另存为 .style”创建的默认自定义样式。我在一些彩色矩形上放置了几个标准控件:TScaledLayout 上的红色和绿色控件,直接在表单上的蓝色控件。当我拉伸表单时,彩色线条出现在 ScaledLayout 上的控件上;背景部分可见:

如果我调整表单的大小以与设计时尺寸完全匹配,线条就会消失。这似乎是一个非常重要的问题,我当然不能像那样将这两个一起使用。有人对可能的修复或解决方法有想法吗?

【问题讨论】:

  • 我们已经在许多 Delphi 版本中看到了同样的问题。它仍然存在于西雅图的 Delphi 10 中。

标签: delphi firemonkey delphi-xe7 firemonkey-style


【解决方案1】:

看起来这是缩放和位图的已知问题。在此处查看 Google+ 讨论 - https://plus.google.com/+PaulThornton/posts/ACAHkJD3a84。我将引用 Marco Cantu 的想法:

我发现了一个类似案例的内部报告问题,但没有 找到了一个符合这种情况的。当然值得增加质量 门户网站。话虽如此,我担心基于位图的操作和 缩放并不能很好地结合在一起,而且可能很困难 有一个包罗万象的解决方案。

让我用一个例子来解释。拿一个按钮。这是FMX画的 有 9 个部分(边界、角落、中心部分),因此无论 位图元素最多向一个方向拉伸的大小, 经常只是画画。将按钮的单个位图拉伸到 目标大小会破坏抗锯齿并创建模糊的图像 使用颜色。

这是使用 ScaledLayout 发生的示例,因为它需要 完成最终图像并对其进行转换。 ScaledLayout 最初是 引入了矢量样式,并且在这种情况下工作得很好。 对于今天的位图样式,事情变得有点复杂了。

不管这个问题的解释是什么,我都建议 在 QC 上报告它,我会确保它不会像设计一样被关闭 (这很自然会发生,这就是系统的工作方式)但是我们 做一些调查来解决这个问题——把它变成一个 功能请求。

【讨论】:

  • 我发现这似乎是 D2D 的一个问题,如果我强制使用 GDI+ (FMX.Types.GlobalUseDirect2D := false) 它工作正常。不过,这显然不是一个很好的解决方案,因为它牺牲了 D2D 的所有优势。这与 Marco 的解释有何一致?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多