如何在 UWP 中更改 InkCanvas Strokes 的大小?

How to change the size of InkCanvas Strokes in UWP?

我的 UWP 应用程序中的 InkCanvas 有一个未解决的问题。

我将 InKCanvas 中的笔画保存在 SQLite 数据库中,并带有测量值 a*b。现在我想在另一个 InkCanvas 上显示此 Strokes,其测量值与具有 a*b(例如 a/2 * b/2)的 InkCanvas 不同。

如何更改笔触的大小?我尝试使用:

var allStrokes = myInkCanvas.InkPresenter.StrokeContainer.GetStrokes();
foreach(var item in allStrokes)
{
    item.PointTransform() = ...// I tried to transform my Strokey with a 3x2 Matrix
                               // But it didn't work. 
}

也许有人可以提供帮助。

矩阵转换对我有用。

我使用过Matrix3x2.CreateScale工厂方法如下:

var strokes = InkDisplay.InkPresenter.StrokeContainer.GetStrokes();
foreach ( var stroke in strokes )
{
    stroke.PointTransform = 
       Matrix3x2.CreateScale( 
          xScale,
          yScale 
       );
}

请注意,xScaleyScale 值表示 相对 比例,这意味着当您使用 canvas 大小的墨水时X*Y 墨水 canvas 大小 (X/2)*(Y*2),值将是 xScale = 0.5yScale = 2

你可以看到我创建的示例on my GitHub