我的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.
}
也许有人可以提供帮助。
答案 0 :(得分:1)
矩阵的转换对我有用。
我使用了var strokes = InkDisplay.InkPresenter.StrokeContainer.GetStrokes();
foreach ( var stroke in strokes )
{
stroke.PointTransform =
Matrix3x2.CreateScale(
xScale,
yScale
);
}
工厂方法,如下所示:
xScale
请注意,yScale
和X*Y
值代表相对比例,这意味着当您从尺寸为(X/2)*(Y*2)
的墨水画布转到墨迹画布时大小xScale = 0.5
,值为yScale = 2
和@foreach ($plans as $plan)
....
{{ empty($plan->space) ? 'Unlimited' : $plan->space }}
....
@endforeach
。
您可以看到我创建的示例on my GitHub。