如何在UWP中更改InkCanvas笔画的大小

本文关键字:笔画 InkCanvas UWP | 更新日期: 2023-09-27 18:05:49

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

我保存我的笔画在SQLite数据库从InKCanvas测量a*b。现在我想在另一个InkCanvas上显示这个笔画,它的尺寸与a*b的InkCanvas不同(例如a/2 * b/2)。

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

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. 
}

也许有人能帮忙。

如何在UWP中更改InkCanvas笔画的大小

矩阵变换对我有效

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

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

注意,xScaleyScale值表示相对比例,这意味着当您从尺寸为X*Y的墨水画布切换到尺寸为(X/2)*(Y*2)的墨水画布时,值将是xScale = 0.5yScale = 2

你可以看到我在我的GitHub上创建的示例