【发布时间】:2013-01-30 11:39:51
【问题描述】:
我正在尝试在 Win 7 缩放轨迹栏中复制 PAINT 应用程序的行为: (我知道这是一个常见的轨迹栏控件)
100% 位于中心。 它有 11 个可用位置:
等等……
12.5%, 25%, 50%, 100%, 200%, 300%, 400%, 500%, 600%, 700%, 800%
所以我的缩放值 (ZoomArray) 是:0.125, 0.25, 0.5, 1, 2, 3, 4, 5, 6, 7, 8
这很容易,我可以将 Min 设置为 1 并将 Max 设置为 11 并获得我需要的值:ZoomArray[TrackBar1.Position]
问题是如何保持 100% 在中心,而唯一可用的位置是上面那个?
我尝试在数组中使用虚拟值来将 1 保持在中心,例如:0.125, 0.25, 0.5, -1, -1, -1, -1, 1, 2, 3, 4, 5, 6, 7, 8
并在更改事件上重新定位轨迹栏,但我的逻辑似乎无法正常工作。
有什么想法吗?
【问题讨论】:
-
我的解决方案是设置足够的缩放值,使 100% 位于中间。使用其他任何东西都会很糟糕。
-
@David,Paint 所做的很有意义,它允许更简单(也更有意义)缩放位图。低于 100% 您将获得 50、25 和 12.5;一个屏幕像素是基于原始的 (2x2)、(4x4) 或 (8x8) 区域进行渲染的。超过 100 的缩放级别从一百到一百:一个像素被缩放到 (2x2)、(3x3) ... (8x8)。当然这很可怕,但 33% 的缩放在像素绘画应用程序中可能看起来不太好。
-
@CosminPrund 这取决于使用的调整大小算法。一个好的重采样器可以在 2 的非幂次方中做得很好。