如何在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.
}
也许有人能帮忙。
矩阵变换对我有效
我使用Matrix3x2.CreateScale
工厂方法如下:
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
。
你可以看到我在我的GitHub上创建的示例