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

时间:2016-09-05 19:49:08

标签: c# resize uwp transform inkcanvas

我的UWP App中的InkCanvas有一个未解决的问题。

我使用测量a*b从InKCanvas中将我的笔画保存在SQLite数据库中。现在我想在另一个InkCanvas上显示这个Strokes,其测量值与带有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. 
}

也许有人可以提供帮助。

1 个答案:

答案 0 :(得分:1)

矩阵的转换对我有用。

我使用了var strokes = InkDisplay.InkPresenter.StrokeContainer.GetStrokes(); foreach ( var stroke in strokes ) { stroke.PointTransform = Matrix3x2.CreateScale( xScale, yScale ); } 工厂方法,如下所示:

xScale

请注意,yScaleX*Y值代表相对比例,这意味着当您从尺寸为(X/2)*(Y*2)的墨水画布转到墨迹画布时大小xScale = 0.5,值为yScale = 2@foreach ($plans as $plan) .... {{ empty($plan->space) ? 'Unlimited' : $plan->space }} .... @endforeach

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