【发布时间】:2017-03-30 01:17:54
【问题描述】:
我有一个简单的演示应用程序,它使用图像作为 InkCanvas 的背景,并在调整图像的显示大小时缩放笔触,以使它们相对于图像保持在同一位置。由于您可以绘制 -> 调整大小 -> 绘制 -> 调整大小 -> 绘制这意味着我必须通过在每个笔划上分配 PointTransform 来每次缩放每个笔划不同的数量。
float thisScale = (float)(scale / _prevScale);
foreach (InkStroke stroke in myCanvas.InkPresenter.StrokeContainer.GetStrokes())
{
float thisPointScale = thisScale * stroke.PointTransform.M11;
stroke.PointTransform = Matrix3x2.CreateScale(new Vector2(thisPointScale));
}
这可以很好地调整笔画的长度。但是,它对笔画的粗细没有任何影响。当您使用粗笔或不均匀的笔(例如荧光笔)时,这一点会更加明显。
这些链接到显示结果的两个屏幕剪辑。 全屏 - https://1drv.ms/i/s!ArHMZAt1svlBiZZDfrxFqyGU1bJ6MQ 较小的窗口 - https://1drv.ms/i/s!ArHMZAt1svlBiZZCqHHYaISPfWMMpQ
关于如何调整笔画粗细的任何想法?
【问题讨论】: